我在PID运行时写了一个for循环来运行:
for (( j=0; (j < 40) && `kill -0 $pid` ; j++ )); do
printf "."
sleep 1
done
但它不起作用并显示以下错误:
line 98: ((: (j < 40) && : syntax error: operand expected (error token is "&& ")
我尝试了其他选项,例如:
for (( j=0; (j < 40) && (kill -0 $pid) ; j++ )); do
for (( j=0; ((j < 40)) && ((kill -0 $pid)) ; j++ )); do
for (( j=0; ( ((j < 40)) && ((kill -0 $pid)) ) ; j++ )); do
for (( j=0; [ ((j < 40)) && ((kill -0 $pid)) ] ; j++ )); do
for (( j=0; ((j < 40)) && [kill -0 $pid] ; j++ )); do
但以上所有变化都会导致一些错误。
答案 0 :(得分:2)
您不能在((...))
的算术评估上下文中使用命令替换。将它重写为while
循环可能最简单。
tries=0
while kill -0 $pid; do
(( tries++ > 40 )) && break
printf "."
sleep 1
done