Я использую shell-скрипты для загрузки результатов запроса в мою базу данных. В сценарии сначала я сохраняю результаты запроса в файл csv, а затем загружаю файл в другую базу данных. После каждого шага я отправляю электронное письмо с уведомлением. Проблема, с которой я сталкиваюсь, заключается в том, что я не могу выполнить правильную обработку ошибок. Например, я использую нечто вроде команды ниже, чтобы создать файл CSV:Обработка ошибок vsql (нет такого файла или каталога)
/apps/vertica/vertica_v5.1.6/bin/vsql -h server.my.com -U "user" -w "pass" -o "/data/test.csv" -c "select count(*), month from table1 group by month"
Если каталог «данные» не существует, статус выхода в Unix все еще возвращает 0 (операция выполнена успешно, даже если произошла ошибка), так как результаты запроса отображаются на экране. Как я могу справиться с такой ошибкой? Какой оператор IF я должен использовать в своем скрипте для его захвата?
Большое спасибо!
Да, но мой вопрос касается того, как правильно обрабатывать ошибки, и если vsql передает какое-либо сообщение в Unix. могут быть и другие ошибки, и я хочу знать, как их управлять. – saghar
Вы можете управлять ошибками в соответствии с выходом 'vsql'. Используйте 'output = $ (ваша команда)' для захвата вывода 'vhost'. – clyfish
, тогда вывод $ output будет результатом запроса. как это могло помочь в обработке ошибок? – saghar