Я перешел с SuSE на RHEL и, пытаясь использовать тот же код, я думаю, что у меня возникла ошибка, связанная с идентификацией. SuSE использовал bash3, а RHEL - bash4.
Сообщение об ошибке:
-bash: test.sh: line 9: unexpected EOF while looking for matching `)'
-bash: test.sh: line 21: syntax error: unexpected end of file
Когда я меняюсь:
EOF)
Для этого (уберите вкладку):
EOF)
отлично работает. Я понимаю проблему, но я хотел бы понять, почему она хорошо работает с SuSE, а с RHEL - нет. Дело в том, что изменение этого кода займет очень много времени и работы, так есть ли способ обойти это с помощью сеанса Unix или некоторой конфигурации?
#!/bin/bash
result=$(sqlplus -S /nolog << EOF
WHENEVER SQLERROR EXIT SQL.SQLCODE;
Connect $ORACLE_USER/$(sh /bin/encrypt.sh -d "$ORACLE_PASS")@${HOST}:${PORT}/${HOST}
set heading off
set line 1000
$QUERY;
EXIT;
EOF)
result=$(echo $result | tail --lines=1)
echo $result
return $result
}