bash - 在bash中逐行读取txt文件,而不知道其名称

标签 bash input

我需要读取我制作的脚本中给我的文件,该文件可以是任何名称,输入如下

./Naloga1.sh tocke < somefile.txt

这是我的代码:

while read line
do
  echo $line
done < 

问题是,首先,如果我将脚本名称放在“完成”处,它将读取我文件中的所有行 - 最后一行。 其次,我如何访问文件名然后输出它? 如果我回显 $1 $2 $3,则 $1 作为 tocke 出现,而​​ $2 和 $3 不存在

最佳答案

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

因此,您无需重定向任何内容即可从脚本内的文件中读取,它只需从 stdin 读取即可。因为 shell 已经为您处理了输入重定向。

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

关于bash - 在bash中逐行读取txt文件,而不知道其名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33984522/

相关文章:

linux - 我在编写 "For Loop"语句时遇到问题,该语句检查文本文件以查看其中是否存在每个语句

bash - 如何自动从 Harbor 中删除 Docker 镜像?

regex - 如何删除不在我本地存储库中的远程标签?

javascript - 单选按钮上的 jQuery .change()

text - 如何在Bootstrap 3中自定义输入字段宽度

java - 命令行选项适用于 Windows,但不适用于 Linux

javascript - 输入数字时按 Enter 键提交

javascript - 无法强制聚焦于输入

java - 输入输出异常处理

linux - 字典的grep过滤