我在条件
中调用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
正确的做法是什么?
答案 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