Я пытаюсь выполнить скрипт test bash внутри функции в другом сценарии оболочки. Функция принимает параметр, который является скриптом test bash (команда echo
), и затем проверяет статус выхода. Проблема здесь в том, что статус выхода принимается за первую строку вывода тестового скрипта.Первая строка вывода команды в скрипте bash, переопределяющем статус выхода
SCRIPT: single_run.sh
function sing_run() {
exec_script=$1
`$exec_script`
return_status=$?
if [[ `$return_status` = "0" ]]; then
echo "SUCCESS"
else
echo "FAILURE"
fi
}
sing_run "/bin/bash -x /home/mspprod/customers/adobe/prod/scripts/test_run.sh | tee -a /home/mspprod/customers/adobe/prod/logs/testing.log"
SCRIPT: test_run.sh
#!/bin/bash
echo "This is a test script"
ОШИБКА СООБЩЕНИЕ:
bash -x single_run.sh
+ sing_run '/bin/bash -x /home/mspprod/customers/adobe/prod/scripts/test_run.sh | tee
-a /home/mspprod/customers/adobe/prod/logs/testing.log'
+ exec_script='/bin/bash -x /home/mspprod/customers/adobe/prod/scripts/test_run.sh |
tee -a /home/mspprod/customers/adobe/prod/logs/testing.log'
++ /bin/bash -x /home/mspprod/customers/adobe/prod/scripts/test_run.sh '|' tee -a
/home/mspprod/customers/adobe/prod/logs/testing.log
+ echo 'This is a Test Script'
+ This is a Test Script
single_run.sh: line 5: This: command not found
+ return_status='echo 127'
++ echo 127
+ [[ 127 = \0 ]]
+ echo FAILURE
FAILURE
Как я могу получить правильный статус выхода, а не This
как статус выхода?
работал вне FUNC, но не внутри: #/bin/Баш функция sing_run() { 'Баш -x $ 1 | tee -a выход.log' если [[$? = 0]]; затем эхо "SUCCESS" еще эхо "FAILURE" фи } sing_run '/home/mspprod/customers/adobe/prod/scripts/test_run.sh' O: + sing_run/дом/mspprod/клиентов /adobe/prod/scripts/test_run.sh ++ bash -x /home/mspprod/customers/adobe/prod/scripts/test_run.sh + echo 'Это тестовый скрипт' ++ tee -a output. войти + это тест сценарий single_run.sh: строка 4: Это: команда не найдена + [[127 = 0]] + эхо FAILURE FAILUR – user2738809
отредактировал код, используя функция сейчас. – user1502952
Это работает отлично. Спасибо.. :) – user2738809