我正在尝试执行这样的脚本,使用间接接受脚本
sh <<EOT
for str in `cat test`
do
echo $str
done
EOT
文件“test”包含内容
a
b
c
它给出了以下错误。
sh: line 2: syntax error near unexpected token `b'
sh: line 2: `b'
任何人都可以澄清吗?我的目标是执行上面的脚本,而不是创建一个shell脚本文件script.sh并执行它(工作正常)
答案 0 :(得分:1)
你的外壳正在插入HEREDOC。为防止这种情况,请引用分隔符:
sh << 'EOT'
澄清一下,你拥有的东西相当于:
sh <<EOT
for str in a
b
c
do
echo
done
EOT
这使得语法错误相当明显。