Eu gostaria de escrever várias linhas em um arquivo com o EOT, mas o seguinte script
#!/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
Dá este erro
line 11: warning: here-document at line 6 delimited by end-of-file (wanted `EOT')
line 12: syntax error: unexpected end of file
Como posso corrigir isso?
O delimitador final do documento aqui deve ser a primeira coisa na linha:
Se você quiser recuar as linhas no script que cria o script de envio, use tabs literais no início das linhas e faça o redirecionamento usando
<<-DELIMITER
, por exemploO
-
in<<-
fará com que todas as guias iniciais (não espaços) sejam removidas de cada linha do documento aqui. Isso também permite recuar o delimitador final, conforme mostrado acima.Observe também que, se você deseja expandir uma variável no documento aqui, não deve citar o delimitador do documento aqui.