使用I / O间接接受的代码执行shell脚本

时间:2013-04-09 06:14:55

标签: shell unix

我正在尝试执行这样的脚本,使用间接接受脚本

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并执行它(工作正常)

1 个答案:

答案 0 :(得分:1)

你的外壳正在插入HEREDOC。为防止这种情况,请引用分隔符:

sh << 'EOT'

澄清一下,你拥有的东西相当于:

sh <<EOT
for str in a
b
c
do
 echo
done
EOT

这使得语法错误相当明显。