2013-07-01 3 views
0

В моем сценарии оболочки UNIX мне нужно вставить параметр, чтобы запустить его. Этот параметр может принимать два дозатора (испытание и производство). Внутри кода я делаю вставку в Oracle db. После этой вставки я должен сделать условие, что если параметр равен test, тогда напишите катушку в другом файле и не подключайте db, иначе подключите db и вставьте вставку нормально. Принципиально существует два пути; в тесте я просто хочу посмотреть, что собирается сделать оболочка, и о том, что он делает обычную вставку и его операции. Я пробую это после вставки, но получаю ошибку:Напишите отчет о том, что сделало оболочку

if [[ "$choice" = "test" ]]; 
then 
    ${TMP_PART2DAT} > ${TMP_REPORT} 
else 
    SP_SQLLOGIN="$ORACLE_DB_OWN/[email protected]$ORACLE_SID" 
    sqlplus -S -L ${SP_SQLLOGIN} @${TMP_PART2SQL} 
fi 

Любые идеи?

+2

'TMP_PART2DAT' содержит имя файла, содержащего команды SQL? Если это так, вы просто хотите скопировать (или 'cat', поскольку у вас есть'> 'redirect), этот файл для имени, хранящегося в' TMP_REPORT'? Это кажется простым, но если это не так, я не уверен, что вы спрашиваете. (Кстати, может быть безопаснее иметь ваш тест 'if', чтобы значение было * не * производственным значением, иначе вы можете получить неприятный сюрприз, если вы пропустите« тест »во время выполнения.) –

+0

« TMP_PART2DAT »является катушку и содержит данные. Запрос находится в другом файле с именем 'TMP_PART2SQL'. Я хочу просто перенаправить данные внутри первого файла в другой файл. Но в том, как я писал не работает, я не знаю, почему ... Он говорит, что TMP_PART2DAT не найден. –

ответ

0

Попробуйте

cat ${TMP_PART2DAT} > ${TMP_REPORT} 

для линии 3 вашего сценария.

Это будет перезаписывать все в TMP_REPORT с содержимым TMP_PART2DAT.

1

Попробуйте запустить сценарий оболочки с режимом «bash -x». Вы сможете отслеживать выполнение команды.

Смежные вопросы