什么' - '代表bash?

时间:2010-05-08 16:27:13

标签: linux bash unix

在bash中使用' - '究竟是什么?我知道它们可以用于

  1. cd -#带您进入旧的“现有工作目录”
  2. some stream generating command | vim - #tothow vim获取文字。
  3. 我的问题究竟是什么 - 在bash?在其他情况下我可以使用它吗?

    此致 阿伦

4 个答案:

答案 0 :(得分:17)

这取决于应用程序。

cd -

返回到您所在的最后一个目录。

-代表stdinstdout。例如:

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)

bash中的

-没有任何意义作为一个独立的参数(我不会说它在shell中根本没有意义 - 例如它用于扩展,例如{{1列出以数字开头的所有文件。

作为一个独立的参数值,bash绝对没有什么特别之处,并按原样传递给命令。

命令对它的作用取决于每个程序 - 几乎可以是任何东西。

有一个常用的约定,ls [0-9]*参数指示程序需要从STDIN而不是文件中读取输入。同样,这只是编码了多少程序,技术上与bash无关。

答案 2 :(得分:1)

来自tldp

  

这可以使用连字符( - )表示程序应该从管道中读取

这解释了vim示例如何获取其数据。

答案 3 :(得分:0)

这里没有普遍的规则。

根据上下文改变

  1. 当您在两个目录中重复执行某些操作时,它非常有用。请参阅此处的#4:http://www.thegeekstuff.com/2008/10/6-awesome-linux-cd-command-hacks-productivity-tip3-for-geeks/

  2. 在许多地方,它意味着STDIN。