我想用 EOT 将多行写入一个文件,但是下面的脚本
#!/bin/bash
bench="X"
file_name="submit2.sh"
ids=(55)
for id in "${arrayName[@]}"; do
cat <<'EOT' >> $bench/$file_name
#!/bin/bash -l
#PBS -l nodes=1:ppn=1
echo $id
EOT
done # line 11
给出这个错误
line 11: warning: here-document at line 6 delimited by end-of-file (wanted `EOT')
line 12: syntax error: unexpected end of file
我该如何解决?
here-document 的结束分隔符必须是该行的第一件事:
如果要缩进创建提交脚本的脚本中的行,则在行的开头使用文字制表符并使用 进行重定向
<<-DELIMITER
,例如-
in将<<-
导致从 here-document 的每一行中删除所有初始制表符(不是空格)。这也允许您缩进结束分隔符,如上所示。另请注意,如果要扩展 here-document 中的变量,则不应引用 here-document 分隔符。