我很擅长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
答案 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)?