Используйте функцию кода возврата, если оператор из другого сценария оболочкиLinux

Ответить
Anonymous
 Используйте функцию кода возврата, если оператор из другого сценария оболочки

Сообщение Anonymous »

У меня есть сценарий оболочки под названием script_1.sh, как показано ниже

Код: Выделить всё

# query
batch_count_query="SELECT COUNT(*) AS COUNT FROM ${db_name}.${table_name} WHERE BATCH_STATUS = "RUNNING";"

echo "************** $batch_count_query ******************************"

# Invoke the query
resp1=$(hive -e "$batch_count_query")

# return status check
if [ $? -eq 0 ]; then
echo "******************* Command Ran Successfully ******************** "
echo "Return message is ***************** ${resp1} ****************** "
else
echo "******************* Error during the command execution ******************** "
echo "Return message is ***************** ${resp1} ****************** "
exit 1
fi
Теперь, когда запрос завершается неудачно, сценарий успешно завершает работу с сообщением об ошибке.
Теперь я хочу внести некоторые изменения в сценарий. Я хочу использовать часть кода проверки статуса возврата во многих скриптах.
Поэтому я попытался создать функцию в файле session_helper.sh, как показано ниже

Код: Выделить всё

# find return status of the command
command_exec_status ()
{
message=$1
if [ $? -eq 0 ]; then
echo "******************* Command Ran Successfully ******************** "
echo "Return message is ***************** ${message} ****************** "
else
echo "******************* Error during the command execution ******************** "
echo "Return message is ***************** ${message} ****************** "
exit 1
fi
}
Новый сценарий оболочки script_2.sh представлен ниже:

Код: Выделить всё

source /home/$USER/session_helper.sh

# query
batch_count_query="SELECT COUNT(*) AS COUNT FROM ${db_name}.${table_name} WHERE BATCH_STATUS = "RUNNING";"

echo "************** $batch_count_query ******************************"

# Invoke the query
resp1=$(hive -e "$batch_count_query")

# find status based on return code
command_exec_status $resp1
когда я использую приведенный выше новый скрипт, даже если запрос не выполнен. Работа не проваливается.
Что я здесь делаю не так. Какой метод правильный.

Подробнее здесь: https://stackoverflow.com/questions/792 ... ell-script
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»