如何在循环中使用here文档?

时间:2014-05-01 14:43:40

标签: bash shell

这有效:

name="test.txt"

yap -q << % > $name
  [experiment_yap],
  exp1_min(brother,2).
%

这不是:

for i in 01 02 03 04 05
do
  name="test.txt"

  yap -q << % > $name
    [experiment_yap],
    exp1_min(brother,2).
  %
done

我收到第19行:语法错误:意外的文件结尾

1 个答案:

答案 0 :(得分:9)

它没有处于一个重要的循环中。 bash并不真正了解或关心缩进 - 要识别heredoc的结尾,终止字符串必须位于行的开头,这会使您的循环看起来像:

for i in 01 02 03 04 05
do
  name="test.txt"

  yap -q << % > $name
    [experiment_yap],
    exp1_min(brother,2).
%
done