3 2>&-,2> / dev / null,|&,&> / dev / null和> / dev / null 2>&1之间的区别 只是寻找之间的区别 2>&- 2>/dev/null |& &>/dev/null >/dev/null 2>&1 以及它们与便携non-Bourne shells像tcsh,mksh等等。 191 shell io-redirection file-descriptors csh portability
3 外壳如何知道房屋? 每个外壳程序都有一个环境变量$ HOME设置(例如:)/Users/lotolo。如果我在csh之下,我可以unsetenv HOME并且仍然可以,如果我这样做,cd我将在家里。我也在bash(unset HOME)上进行了测试,这是相同的行为。那么外壳如何知道我/ other_user的家在哪里?它在哪里读取这些值? 这不是重复的,因为我的问题不是我怎么知道,而是shell如何知道HOME。并且此行为也扩展到其他用户。 25 bash cd-command home tcsh csh
2 函数,别名和可执行文件中的连字符是否存在问题? 在我的测试中(在Bash和Z Shell中),我发现定义函数或别名或名称中带有连字符的可执行Shell脚本没有问题,但是我不确定在所有Shell和所有用例中都可以做到这一点。 我想这样做的原因是连字符比下划线更容易键入,因此更快捷,更流畅。 我不敢相信这不是问题的一个原因是,在某些语言(例如Ruby)中,即使连字符之间没有空格,连字符也会被解释为减号。如果在某些shell中可能会发生类似的事情,这也不会令我感到惊讶,在连字符中连字符被解释为即使没有空格也会发出信号。 我有点怀疑的另一个原因是我的文本编辑器搞砸了带有连字符的函数的语法高亮显示。(但是,当然,这很可能只是shell脚本的语法高亮显示配置中的一个错误。) 有什么理由避免连字符吗? 25 bash shell zsh ksh csh
3 是否可以重新定义代字号(“〜”,主目录)? 是否可以重新定义主目录?例如到/ext1/username而不是/home/username,~即将扩展到另一个目录(与更改用户主文件所在的实际主目录相反)。 (此问题大部分是学术性的,因为这样做似乎是一种不好的做法。csh尽管已阅读了前10名,但我在使用问题上也别无选择。) 13 solaris home csh
3 stderr重定向在csh中不起作用 我运行以下命令: pkg_add emacs-23.4,2.tbz 2> output.log 输出仍显示在终端中。当我按时↑,我得到 pkg_add emacs-23.4,2.tbz 2 > output.log 在...前面有一个空格2。 我本来没有提出。我尝试 pkg_add emacs-23.4,2.tbz > output.log 2>&1 同样,当我按时↑,已经添加了空格。 为什么这发生在我身上? 我在FreeBSD上运行csh。 11 command-line freebsd io-redirection csh