Io-Redirection
重定向運算符、標準輸入和命令參數
我正在關注 William Shotts 的“Linux 命令行”。據我了解,
>
操作員將標準輸出保存到文件中,並<
從文件中獲取標準輸入。如果鍵盤是預設的標準輸入並且
<
只從某個文件中獲取該輸入,為什麼ls -l
不等同於ls < some_params.txt
wheresome_params.txt
would contain-l
?提前致謝
為什麼
ls -l
不等於ls < some_params.txt
wheresome_params.txt
會包含-l
?因為命令行不是標準輸入!
ls
這裡不是一個很好的例子,因為它不使用標準輸入。它只是處理它獲得的命令行選項,查看一些目錄,並將列表列印到標準輸出。但考慮類似
cat -n
. 它-n
從命令行獲取標誌,然後從其標準輸入讀取,添加行號並列印到標準輸出。沒有< filename
,輸入來自終端(即您的鍵盤)。有了它,它來自一個文件。您可以做的是使用命令替換將文件的內容插入命令行。
ls $(cat some_params.txt)
(或ls $(< some_params.txt)
在支持它的外殼中)會按照您的建議進行。