在bash中使用' - '究竟是什么?我知道它们可以用于
cd -
#带您进入旧的“现有工作目录”some stream generating command | vim -
#tothow vim获取文字。我的问题究竟是什么 - 在bash?在其他情况下我可以使用它吗?
此致 阿伦
答案 0 :(得分:17)
这取决于应用程序。
cd -
返回到您所在的最后一个目录。
-
代表stdin
或stdout
。例如:
xmllint -
不会检查XML文件,而是检查stdin
上的XML。样品:
xmllint - <<EOF
<root/>
EOF
cat
:
cat -
从stdin
读取。 -
代表stdout
的最后一个示例:
wget -O- http://google.com
将通过HTTP接收google.com,并通过stdout
发送。
顺便说一下:这与你的shell无关(例如bash
)。它只是被调用应用程序的语义。
答案 1 :(得分:3)
-
没有任何意义作为一个独立的参数(我不会说它在shell中根本没有意义 - 例如它用于扩展,例如{{1列出以数字开头的所有文件。
作为一个独立的参数值,bash绝对没有什么特别之处,并按原样传递给命令。
命令对它的作用取决于每个程序 - 几乎可以是任何东西。
有一个常用的约定,ls [0-9]*
参数指示程序需要从STDIN而不是文件中读取输入。同样,这只是编码了多少程序,技术上与bash无关。
答案 2 :(得分:1)
答案 3 :(得分:0)
这里没有普遍的规则。
根据上下文改变
当您在两个目录中重复执行某些操作时,它非常有用。请参阅此处的#4:http://www.thegeekstuff.com/2008/10/6-awesome-linux-cd-command-hacks-productivity-tip3-for-geeks/
在许多地方,它意味着STDIN。