Я пытаюсь запустить скрипт, где внутри я запускаю другой скрипт, после его запуска я хочу получить код выхода и что-то с ним сделать, но я получаю только 0
каждый раз.
Я также пробовал разные подходы, используя sourcing или упаковывая команду в функцию, а также дал оба права на выполнение с chmod -x
.
a.sh
#!/usr/bin/env bash
mkdir data
mkdir -p data/test
b.sh
#!/usr/bin/env bash
set -x
(bash a.sh) &
pid=$!
wait $pid
exitCode=$?
echo $pid
echo $exitCode
Результат с bash b.sh
:
+ pid=7399
+ wait 7399
+ bash a.sh
mkdir: data: File exists
+ exitCode=0
+ echo 7399
7399
+ echo 0
0
Результат с bash a.sh
:
mkdir: data: File exists (no exit code)
Результат с mkdir data
:
mkdir: data: File exists (exit code 1)
Я знаю, что могу сделать mkdir -p data
, но это всего лишь тест для получения кода выхода, с которым я смогу работать позже в моем скрипте.
Версия Bash: GNU bash, версия 3.2.57 (1) -релиз (x86_64-apple-darwin18)