小编The*_*o61的帖子

为什么最好使用“#!/usr/bin/env NAME”而不是“#!/path/to/NAME”作为我的shebang?

我注意到我从其他人那里获得的一些脚本有 shebang#!/path/to/NAME而其他人(使用相同的工具,NAME)有 shebang #!/usr/bin/env NAME

两者似乎都可以正常工作。在教程中(例如在 Python 上),似乎有人建议后者 shebang 更好。但是,我不太明白为什么会这样。

我意识到,为了使用后一个 shebang,NAME 必须在 PATH 中,而第一个 shebang 没有这个限制。

此外,(对我而言)第一个似乎是更好的shebang,因为它精确地指定了NAME 所在的位置。因此,在这种情况下,如果 NAME 有多个版本(例如,/usr/bin/NAME、/usr/local/bin/NAME),第一种情况指定使用哪个。

我的问题是为什么第一个shebang比第二个更受欢迎?

shell-script shebang

588
推荐指数
10
解决办法
25万
查看次数

是否可以获得 xterm 窗口的当前名称?

这个 LDP Howto演示了如何更改 xterm 的标题。

我知道这也可以使用xtitle命令。

在调用长时间运行的操作之前,我的脚本使用此类技术来更改其 xterm 窗口的标题。

我想在更改它之前提取 xterm 窗口的名称,以便在长时间运行的操作完成后,我可以将标题恢复为以前的值。

它有点像 xtitle 的反面......这甚至可能吗?

xterm

9
推荐指数
2
解决办法
5427
查看次数

`/usr/share/emacs/site-lisp/` 目录和 `/usr/share/emacs23/site-lisp/` 目录有什么区别?

我在我的系统上使用 Emacs 23。我从一位同事(他有不同的 Linux 发行版)那里收到了一个要添加到/usr/share/emacs/site-lisp/目录中的文件。

在我努力做到这一点时,我注意到另一个名称类似的目录: /usr/share/emacs23/site-lisp/. 查看它们的内容时,我注意到它们并不相同。

这在所有发行版上的所有 Emacs 配置中都很常见吗?什么时候我应该添加一个而不是另一个有不同的目的吗?哪一个?我怎么知道?

简而言之,这两个目录有什么区别?

emacs directory-structure

4
推荐指数
1
解决办法
1534
查看次数

在哪里可以找到对 /etc/passwd 文件的注释字段(字段 5)格式的引用?

/etc/passwd我系统上的文件中,“评论”字段,字段 5,其内容不一致。我以为我可以提取它以获得用户的全名。

fullname=`awk -F: '$1 == name {print $5}' name=$LOGNAME /etc/passwd`
Run Code Online (Sandbox Code Playgroud)

然而,这将返回$fullname包含一个带有 0、3 或 4 个逗号的名称。浏览手册页 ( man 5 passwd) 除了将其描述为“用户名或评论字段”外,没有提供此字段的详细信息。

也许还有其他信息与用户名一起存储?

users password files

4
推荐指数
1
解决办法
770
查看次数