有条件的背景bash脚本

时间:2014-11-08 01:45:38

标签: bash

我在条件

中调用bash脚本
for i in "${array[@]}"; do 
    if ! ./script2.sh $i ; then break ; fi
done

它工作正常,但如果我将脚本作为后台进程调用以下变体,我会得到语法错误:

for i in "${array[@]}"; do 
    if ! ./script2.sh $i & ; then break ; fi
done
for i in "${array[@]}"; do 
    if [ ! ./script2.sh $i & ]; then break ; fi
done

正确的做法是什么?

2 个答案:

答案 0 :(得分:0)

您可以将其输出保存在临时变量中并进行检查。

for i in "${array[@]}"; do 
    tmp="$(./script2.sh "$i")"
    if [ ! "$tmp" ]; then break ; fi
done

答案 1 :(得分:0)

不清楚为什么你要背景它,但这应该适合你:

for i in "${array[@]}"; do 
 ((! $(./script2.sh "$i" &))) && break; 
done