nohup grunt server:debug >grunt.out 2>&1 <&- &
我有一个以 . 结尾的 nohup 命令<&-
。这个方向有什么作用?可以用指针解释一下吗?我确实在谷歌上搜索了示例,但找不到一个解释的示例<&-
,这真的是必需的吗?
答案1
而是通过手册页进行搜索(man bash
是你的朋友)。这样的特殊字符在google上很难找到。基本上你最终会看到这一部分:
复制文件描述符
重定向运算符
[n]<&word
用于复制输入文件描述符。如果
word
扩展为一位或多位数字,则 表示的文件描述符n
将成为该文件描述符的副本。如果 中的数字word
未指定打开以供输入的文件描述符,则会发生重定向错误。 如果 word 的计算结果为-
,则文件描述符n
被关闭。如果n
未指定,则使用标准输入(文件描述符 0)。
换句话说,<&-
,它基本上关闭了stdin
,因此运行的程序nohop
实际上无法从那里读取任何东西。
答案2
可能这个列表有帮助:
<&(Digit) 从 Digit 参数指定的文件描述符复制标准输入
>&(Digit) 在由 Digit 参数指定的文件描述符中复制标准输出
<&- 关闭标准输入
>&- 关闭标准输出