Io-Redirection

重定向運算符、標準輸入和命令參數

  • July 23, 2019

我正在關注 William Shotts 的“Linux 命令行”。據我了解,>操作員將標準輸出保存到文件中,並<從文件中獲取標準輸入。

如果鍵盤是預設的標準輸入並且<只從某個文件中獲取該輸入,為什麼ls -l不等同於ls < some_params.txtwhere some_params.txtwould contain -l

提前致謝

為什麼ls -l不等於ls < some_params.txtwheresome_params.txt會包含-l

因為命令行不是標準輸入!

ls這裡不是一個很好的例子,因為它不使用標準輸入。它只是處理它獲得的命令行選項,查看一些目錄,並將列表列印到標準輸出。

但考慮類似cat -n. 它-n從命令行獲取標誌,然後從其標準輸入讀取,添加行號並列印到標準輸出。沒有< filename,輸入來自終端(即您的鍵盤)。有了它,它來自一個文件。

您可以做的是使用命令替換將文件的內容插入命令行。ls $(cat some_params.txt)(或ls $(< some_params.txt)在支持它的外殼中)會按照您的建議進行。

引用自:https://unix.stackexchange.com/questions/531285