多次将文件传递给 shell 脚本

  • 本文关键字:shell 脚本 文件 bash sh
  • 更新时间 :
  • 英文 :


我有一个 shell 脚本,我将 txt 文件传递给脚本,如下所示:

./run.sh < list.txt

在剧本中,我正在做一个"while read LIST do ... end

一切正常,脚本使用列表执行。

但是,现在我想在同一个 shell 脚本中拥有第二个while read LIST do ... end。 我希望它从原始列表中再次读取,我在执行时传递它,但它不起作用。 它读取第一个循环的列表.txt文件,但不读取第二个循环。

每次我要求脚本时.txt我该怎么做才能使脚本阅读列表?

你不能读两次标准。尝试在命令行上传递 list.txt,而不是重定向它。

./run.sh list.txt

然后在脚本中:

while read LINE; do
    ...
done < "$1"
while read LINE; do
    ...
done < "$1"

或者,在第一次通读时保存 stdin 的内容。例如:

# First loop, save stdin in an array.
LINES=()
while read LINE; do
    LINES+=("$LINE")
    ...
done
# Second loop, iterate over the array.
for LINE in "${LINES[@]}"; do
    ...
done

相关内容

  • 没有找到相关文章

最新更新