У меня есть для l oop, который повторяет выполнение другого скрипта с другими значениями для флага -c
. Когда я запускаю его, он зависает и ничего не происходит.
Когда я запускаю команду ./executer.sh
, вы видите, что зацикливание само по себе for for l oop работает нормально; Тем не менее, когда он вызывается в этом новом скрипте, чтобы я мог через него l oop зависает вместо выполнения.
Зависание для l oop:
while getopts "g:e:t:c:" arg;
do
case "$arg" in
t) IFS=',' read -r -a types <<< "$OPTARG";;
e) env="$OPTARG";;
c) IFS=',' read -r -a components <<< "$OPTARG";;
g) SMODE=$OPTARG;;
esac
done
for i in "${!components[@]}"
do
if [ "$SMODE" = "start" ]; then
r=$(./executer.sh -g $SMODE -t ${types[$i]} -c ${components[$i]} -e $env)
echo "$r"
else
echo "Not recognised"
fi
done
Вывод:
+ getopts g:e:t:c: arg
+ case "$arg" in
+ SMODE=start
+ getopts g:e:t:c: arg
+ case "$arg" in
+ IFS=,
+ read -r -a types
+ getopts g:e:t:c: arg
+ case "$arg" in
+ IFS=,
+ read -r -a components
+ getopts g:e:t:c: arg
+ case "$arg" in
+ env=testing
+ getopts g:e:t:c: arg
+ for i in '"${!components[@]}"'
+ '[' start = start ']'
++ ./executer.sh -g start -t startingKit -c initialStart=1.2 -e testing
Команда, которую я запускаю:
./executerApp.sh -g start -t startingKit -c initialStart=1.2 -e testing