我知道, echo
命令将显示的行文本,通过了作为论据。
这样的语法 echo "qwerty"
将显示:
键盘
但是,当我合并的先前的语法 | /bin/sh
下面的消息显示:
/bin/sh:1:键:没有发现
我想知道为什么使用bitwise or operator(即 |
)这种方式结束这样一种输出。
我知道, echo
命令将显示的行文本,通过了作为论据。
这样的语法 echo "qwerty"
将显示:
键盘
但是,当我合并的先前的语法 | /bin/sh
下面的消息显示:
/bin/sh:1:键:没有发现
我想知道为什么使用bitwise or operator(即 |
)这种方式结束这样一种输出。
|
是不是一个bitwise or operator.[1] 这是一个管道操作者。 它会导致stdout所述的程序是通过管道输送到stdin以下程序。
$ printf 'abc def\nghi\n' | wc
2 3 12
这显示了 wc
("的字数")阅读的输出 printf
并且打印出来的事实,它收到2行,3话和12个字节。
在你的情况, sh
读取其stdin命令(由于没有两个 -c
选项和一个文件名称的论点),因此对待 qwerty
作为一个命令来执行。
bash
和其他可能的炮弹在"sh家庭"。 那不是这里的情况,甚至如果你使用 bash
.