Выход прерывается при добавлении вывода sql-запроса в ksh

Я очень новичок в написании сценариев. Я хотел бы добавить вывод функции sql, приведенной ниже, к другой переменной, например:

month_end () { mdate=$($SQLPLUS_HOME/sqlplus.exe -S $DBC << END set pagesize 0 feedback off verify off heading off echo off; select to_char(last_day(add_months(sysdate,-1)),'yyyymmdd') from dual; exit; END ) } 

когда я эхо вывод из $ mdate совершенен. (20160531)

Но когда я добавляю к другой переменной, вся ценность сломана (_WORLD.txt вместо Hello_20160531_WORLD.txt).

 FILENAME=Hello EXTENSION=WORLD.txt NAME=$FILENAME_${mdate}_${EXTENSION} echo ${NAME} 

  • как разделить буферизацию на меньшие файлы csv
  • проверить шаблоны, которых нет в sqlite
  • vim: Синтаксис синтаксиса с помощью аргумента командной строки
  • Исключение переменных bash перед их сохранением в базе данных hive apache
  • Как я могу получить SQL-запросы для отображения в выходном файле?
  • dovecot mysql-connection ошибка из-за специального charater в config
  • Ввод файла для оператора select в командной строке
  • Ошибка переменной типа?
  • One Solution collect form web for “Выход прерывается при добавлении вывода sql-запроса в ksh”

    Это потому, что underscore _ является действительной частью имени переменной, поэтому вам также нужны фигурные скобки вокруг FILENAME :

     NAME=${FILENAME}_${mdate}_${EXTENSION} 

    На основании вашего другого ответа, похоже, что у вас также есть возврат каретки ( \r ) в строке назначения FILENAME или выходе sqlplus в $mdate . Узнайте, как запустить cat -v в сценарии оболочки и / или выполнить echo $mdate | cat -v echo $mdate | cat -v . Поскольку я только что заметил sqlplus. exe , я предполагаю, что вы работаете в среде, подобной Cygwin, которая может добавить возврат каретки. Исправьте его, добавив mdate=${mdate//^M/} где вы введете ^ M, набрав control-v, control-m.

    Interesting Posts

    Разница между командой multipath -ll и командой multipath -l

    Настроить bash для выполнения команды с последним аргументом, если аргумент не был предоставлен

    Внутренние спецификации Red Hat

    DVD, приводящий к непоследовательности

    Как установить содержимое файла, но оставляя только разрешения с помощью Puppet?

    вложенные двойные кавычки в сильно проголосовавшем однострочном

    Только путь к файлу печати, без имени файла

    Что такое linux distro & platform и возможности пакета – это устройство?

    Переключить две строки произвольной длины, разделенные символом

    Настроить связь между устройством и безголовым устройством

    Почему для очистки прослушивающего TCP-порта после завершения программы требуется несколько минут?

    Соединение wvdial всегда показывает состояние отключено

    Добавить обложку альбома в файл mp3 / ogg из командной строки в пакетном режиме?

    wget-файлы по шаблону только из указанных каталогов рекурсивно

    Несколько сеансов Unix

    Linux и Unix - лучшая ОС в мире.