我是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