Bash 脚本 - 使用 cmd 而不是 cat



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

#!/bin/bash
cat "$1" | while read -r line; do
echo "$line"; sleep 2;
done

shellcheck 运行会发出以下消息:

SC2002:没用的猫。考虑"cmd

我将脚本更改为:

#!/bin/bash
cmd < "$1" | while read -r line; do
echo "$line"; sleep 2;
done

但现在 Bash 退出:

cmd:找不到命令

我做错了什么?

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

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

删除 | 并将结束行为 :

done < "$1"

最新更新