我是bash編程的新手,並且爲我的程序的這一部分努力工作。我知道如何使用位置參數來引用命令行的某些元素,但是,如果指定了某個文件,我只能得到它。如何使用標準輸入位置參數,像這樣:如何在Bash中使用標準輸入的位置參數
cat test_file | stats -r
在這種情況下,可以參考我的「0 $」統計,並以「$ 1」,但我怎麼能指的是貓的test_file裏面的部分-r?在上下文中,Stats是我的程序,它可以找到測試文件中數字的平均值和中位數。 「-r」表示該程序應該讀程序時,在命令行中是這樣寫的每一行:
stats -r test_file
我用這個代碼表示-r
if [[ "${1:0:2}" == '-r' ]]
do stuff
_but我怎麼可以參考'cat test_file'部分?_簡答:你不能! –
如果沒有位置參數(您可以通過查看'$#'來判斷),那麼您應該從標準輸入讀取。這將適用於管道以及用戶希望直接輸入程序的情況。 – rici
如果我需要將它用作函數的參數,我如何從標準輸入讀取數據?因此,使用位置參數我調用這樣的函數:rows_stats $ 2其中$ 2是指文件名。我怎麼能只用標準輸入來做同樣的事情? – user2466886