Shell скрипт 1.sh, какКак вызвать скрипт оболочки из другого сценария оболочки на основе результата первого скрипта?
#/bin/bash
if some java command;
then
exit 1;
else
exit 0;
fi
Shell скрипт 2.sh будет определять его выполнение на основе результата (1 или 0) от 1.sh
#/bin/bash
readyToDoSomethingIfOne=$(1.sh)
if($readyToDoSomethingIfOne=="1");
then
echo "ready to go";
else
echo "Not ready yet" ;
fi
Похоже, команда выхода от 1.sh не передает значение 2.sh. Есть ли хороший способ сделать это?
Кстати, 1.sh и 2.sh необходимо разделить по соображениям бизнеса.
Благодаря
Статус выхода - '$?', Не записанный в '$()' (который получает контент, отправленный на stdout). В общем, если вы хотите узнать, что-то преуспело или нет, вам не нужно явно проверять '$?' - 'если some_command' примет истинную ветвь, если' $? 'Равно 0 после запуска' some_command ', иначе ветвь иначе. –
Кстати, скрипты bash не должны называться с расширением '.sh' - во-первых, в командах обычно нет расширений в UNIX (вы не запускаете' ls.elf'); во-вторых, bash - это не POSIX sh, а кто-то, запущенный 'sh foo.sh', а не' bash foo.sh', был бы неожиданным сюрпризом, если бы вы использовали какие-либо функции, недоступные в стандартной форме языка barebone. –
Кстати, 'exit 0' следует использовать для успеха и' exit 1' при сбое. –