Кажется, код после if
/ fi
не работает. Вот что у меня есть:
У меня есть скрипт, /my/scripts/dir/directoryPercentFull.sh:
directoryPercentFull="$(df | grep '/aDir/anotherDir' | grep -o '...%' | sed 's/%//g' | sed 's/ //g')"
if [ $directoryPercentFull -gt 90 ]
then
echo $directoryPercentFull
exec /someDir/someOtherDir/test01.sh &
exec /someDir/someOtherOtherDir/test02.sh &
exec /someDir/yetAnotherDir/test03.sh
fi
echo "Processing Done"
Вызываемые сценарии:
/someDir/someOtherDir/test01.sh
#!/usr/bin/env bash
echo "inside test01.sh"
sleep 5
echo "leaving test01.sh"
/ someDir / someOtherOtherDir / test02.sh
#!/usr/bin/env bash
echo "inside test02.sh"
sleep 5
echo "leaving test02.sh"
/ someDir / yetAnotherDir / test03.sh
#!/usr/bin/env bash
echo "inside test03.sh"
sleep 5
echo "leaving test03.sh"
Выполнение скрипта, перейдя в / my / scripts / dir и затем ./directoryPercentFull.sh дает:
ВЫВОД:
93
inside test03.sh
inside test02.sh
inside test01.sh
leaving test03.sh
leaving test01.sh
leaving test02.sh
ОЖИДАЕМЫЙ ВЫХОД:
93
inside test01.sh
inside test02.sh
inside test03.sh
leaving test01.sh
leaving test02.sh
leaving test03.sh
Processing Done
Порядок команд эха не так уж и важен, хотя, если кто-то знает, почему они идут 3,2,1, а затем 3,1,2, я не буду ненавидеть объяснение.
Однако я не получаю этот окончательный Processing Done
. У кого-нибудь есть хоть какая-то подсказка, почему финальный echo
обратно в /my/scripts/dir/directoryPercentFull.sh
не происходит? Я намеренно не поместил &
после последнего оператора exec
, так как не хочу, чтобы то, что было после if
/ fi
, запускалось до тех пор, пока вся его обработка не будет завершена.