我正在关注William Shotts的“ Linux命令行”。据我了解,>
操作员将标准输出保存到文件中,并<
从文件中获取标准输入。
如果键盘是默认的标准输入,并且<
仅从某个文件中获取该输入,那么为什么ls -l
不等同于ls < some_params.txt
在哪里some_params.txt
包含-l
?
提前致谢
为什么
ls -l
不等于在ls < some_params.txt
哪里some_params.txt
包含-l
?
因为命令行不是标准输入!
ls
这不是一个很好的示例,因为它不使用标准输入。它仅处理获取的命令行选项,浏览一些目录,并将列表打印到标准输出。
但是考虑一下类似的东西cat -n
。它-n
从命令行获取标志,然后从其标准输入读取,添加行号并打印到标准输出。如果不使用< filename
,则输入来自终端(即您的键盘)。有了它,它来自一个文件。
您可以做的是使用命令替换将文件内容插入命令行。ls $(cat some_params.txt)
(或ls $(< some_params.txt)
在支持它的shell中)将按照您的建议进行操作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句