关于输入:在bash中逐行读取文本文件,而不知道其名称

Reading txt file in bash line by line, without knowing its name

本问题已经有最佳答案,请猛点这里访问。

我需要读一个我写的脚本给我的文件,文件可以是任何名字,输入如下

./Naloga1.sh tocke < somefile.txt

这是我的代码:

1
2
3
4
while read line
do
  echo $line
done <

问题是,首先,如果我将脚本名放在"完成"位置,它将读取文件中的所有行——最后一行。其次,我如何访问文件名,然后输出它?如果我回音$1$2$3,$1作为tocke出现,$2和$3不存在


<不是脚本的参数,bash解释在调用脚本之前。它重定向stdin以便脚本来自,在本例中是somefile.txt

因此,您不必重定向任何要从脚本内的文件中读取的内容,因为shell已经为您处理了输入重定向,所以它只能从stdin中读取。

如果您想使用文件名作为参数,只需从调用中删除<,然后字符串somefile.txt将存储在$2中,您可以使用该字符串来重定向while循环的输入(如果您愿意或可能有任何其他用途)。