'.png)
Я просто пытаюсь получить вывод из SQL-выражения и сохранить его в переменной Bash. Я получаю ошибку " unexpected EOF while looking for matching `)' ". Я не вижу, что я делаю неправильно. Почему я получаю эту ошибку?
var=$($ORACLE_HOME/bin/sqlplus / as sysdba <<EOF
select status from v\$instance;
exit;
EOF
)
решение1
Ваш скрипт отступлен так же? Разделитель для here-doc должен быть в начале строки. У меня это работает:
#!/bin/bash
echo $(cat <<EOF
blah
EOF
)
решение2
Иккачу прав, что код, если не отступ, должен нормально работать на любой достаточно современной версии Bash. Однако я бы добавил, что вам может быть проще понимать и отлаживать его, если вы используете "строку here" вместо "документ here":
var=$(sqlplus / as sysdba <<< 'select status from v$instance; exit;')
Или используйте стандартный конвейер:
var=$(echo 'select status from v$instance; exit;' | sqlplus / as sysdba)