我写了一个脚本,包括这个循环:
#!/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"