我们知道,通过下面的命令,less --help | grep -i examine的输出被重定向到文件检查文件中,是否有类似于BODMAS rule在数学上使用的通用操作顺序?
less --help | grep -i examine > examine-files-in-less发布于 2018-02-23 09:56:51
在管道中涉及的所有命令,例如问题中的命令,都同时启动(差不多)。
这意味着管道中的命令,如
find . ...some other arguments... | sort | uniq -c | sort -nr都在并行运行。
但是,由于一个命令的输出是下一个命令的输入,而且由于命令等待输入的传递和输出的消耗,所以数据同步了管道中的命令。
例如,在上面的管道中,最后一个sort将运行,但在第一个sort使用完find的所有输出(排序操作要求读取所有可用数据)之前,不会执行太多操作。
因此,数据在管道所做的处理中执行从左到右的排序.
在其他复合命令中,例如列表
ls -l; cat somefile这和
ls -l
cat somefile有严格的左右顺序。cat在ls完成之前不会启动。
在复合命令中,如
test -f filename || echo 'no such file'还有一个严格的从左到右的排序,在这里,如果echo返回零退出状态,test将不会执行。
例如,请参见"关于布尔测试的问题&和bash中的“和"逻辑运算符的优先级与分号”。
https://unix.stackexchange.com/questions/426050
复制相似问题