Kru*_*mar 6 shell pipe io-redirection
我正在执行命令
ls > a.txt | sort > b.txt
此命令正在执行以下操作:
执行 ls
排序
创建a.txt和存储排序的输出到a.txt
创建b.txt,但它是空的。
谁能解释一下?
我正在实现我自己的外壳,我需要了解这种行为并模拟它。
Eri*_*ouf 15
在|将左边的命令的输出,并把它交给右边的命令的输入。该>运营商将采取命令的输出,并把它放到一个文件中。这意味着,在您的示例中,当它到达时,|已经没有输出了;这一切都进入了a.txt。所以sort右边的对空字符串进行操作并将其保存到b.txt
您可能想要的是使用tee既可以写入文件又可以写入标准输出的命令
ls | tee a.txt | sort > b.txt
Run Code Online (Sandbox Code Playgroud)
虽然我真的很好奇你想要做什么,因为ls也可以/会为你整理东西。