如何在Bash中使用标准输入的位置参数

时间:2015-10-11 15:31:05

标签: bash shell scripting

我很擅长bash编程并且在我的程序的这一部分中苦苦挣扎。我知道如何使用位置参数来引用命令行的某些元素,但是,如果指定了文件,我只能使用它。如何使用标准输入的位置参数,如下所示:

  cat test_file | stats -r

在这种情况下,我可以用" $ 0"来引用统计数据。和-r与" $ 1"但是我如何参考cat test_file部分?对于上下文,Stats是我的程序,它可以找到测试文件中数字的平均值和中位数。 " -r'表示程序应该读取程序的每一行。当命令行写成这样:

 stats -r test_file

我使用此代码表示-r

 if [[ "${1:0:2}" == '-r' ]]
     do stuff  

2 个答案:

答案 0 :(得分:-1)

试试这个:ID1 LETTER 1 A 1 B 2 R 2 S 2 T 3 Z

答案 1 :(得分:-1)

答案:正如人们所说,在这种情况下你不能使用位置参数。唯一的选择是从标准输入读取,在我的情况下,将其存储在变量中以传递给函数。

请阅读此处以了解更多操作方法:How to read mutliline input from stdin into variable and how to print one out in shell(sh,bash)?