我期望
echo |
Run Code Online (Sandbox Code Playgroud)
执行以下操作:
stdout.stdout到stdin.我期望将空字符串写入的stdin是:什么都没有。发生了什么:>出现一个提示,其行为类似于 bash 中的 bash:
> echo m
m
Run Code Online (Sandbox Code Playgroud)
这是为什么?
| 是互连两个命令的运算符。
cmd1 | cmd2
Run Code Online (Sandbox Code Playgroud)
开始cmd1并cmd2与cmd1连接到管道写入端的 stdout 和连接到cmd2同一管道的读取端的 stdin并行。
在:
cmd1 |
Run Code Online (Sandbox Code Playgroud)
您缺少右手命令。
外壳程序通过发出辅助提示(PS2默认情况下为>)来询问您其余的命令,从而告诉您。
如果你想要的标准输出的echo是一个管道的书写端,而其标准输入是同一管道的读出端(但要注意,echo不能从标准输入读取),你需要使用像贝壳yash那有一个运算符(管道重定向运算符>>|):
echo test 1>>|0
Run Code Online (Sandbox Code Playgroud)
这告诉yash创建一个管道并将写入端分配给 fd 1 (stdout),将读取端分配给 fd 0 (stdin)。
再说一遍,这没什么意义。
| 归档时间: |
|
| 查看次数: |
69 次 |
| 最近记录: |