Bash脚本 - 使用cmd而不是cat

时间:2017-07-23 21:21:33

标签: bash cat

我写了一个脚本,包括这个循环:

#!/bin/bash

cat "$1" | while read -r line; do
  echo "$line"; sleep 2;
done

shellcheck运行发出以下消息:

  

SC2002:无用的猫。考虑' cmd<档案| ..'或者' cmd文件| ..'代替。

我将脚本更改为:

#!/bin/bash

cmd < "$1" | while read -r line; do
  echo "$line"; sleep 2;
done

但现在bash退出:

  

cmd:找不到命令

我做错了什么?

2 个答案:

答案 0 :(得分:4)

您的cmd是整个while cond; do ... done复合语句,在这种情况下,重定向需要在最后:

while read -r line; do
  echo "$line"; sleep 0.2
done < "$1"

答案 1 :(得分:2)

删除|并将结束行作为:

{{1}}