作者:葛菁昱 | 来源:互联网 | 2023-02-04 07:53
假设我从以下语句开始,其中echo
-sa字符串进入以太:
$ echo "foo" 1>/dev/null
然后我提交以下管道:
$ echo "foo" | cat -e - 1>/dev/null
然后我退出了这个过程:
$ echo "foo" | 1>/dev/null
为什么这不会返回错误消息?关于bash和管道的文件似乎没有直接提及可能是原因.在第一次读取之前是否发送了EOF echo
(或者是在管道上游运行的任何进程)?
1> rici..:
shell简单命令不需要具有命令名称.对于没有命令名的命令:
变量赋值适用于当前的执行环境.以下将为参数值设置两个变量:
arg1=$1 arg3=$3
重定向发生在子shell中,但子shell除了初始化重定向外没有做任何事情.以下将截断或创建指定的文件(如果您具有适当的权限):
>/file/to/empty
但是,命令必须至少有一个单词.完全空的命令是语法错误(这就是为什么偶尔需要使用它:
).
答案总结自PosixXCU§2.9.1