-1

バックグラウンド プロセスが実行を継続するまで「hello」を出力するこの bash スクリプトの実行中にエラーが発生します。

ps command not found 

以前にこれを数回行ったことがありますが、今回はなぜエラーが発生するのかわかりません。

./a.sh &
while ps -p $! > /dev/null; do
       echo hello
done
4

2 に答える 2

1

これで明らかな問題が解決するわけではありませんが、繰り返しPATH呼び出すよりも簡単な方法があります。ps

# Start your script in the background, remembering its process ID
./a.sh & A_PID=$!

# Start another background job that echos hello (once per second, to
# avoid a flood of hellos). Remember its process ID as well
( while : ; do echo hello; sleep 1 done ) & LOOP_PID=$!

# Now wait for a.sh to finish...
wait $A_PID

# ... and kill the hello job
kill $LOOP_PID
于 2013-10-25T18:12:33.230 に答える
0

この問題をデバッグするには、次のことをお勧めします

 nohup ./a.sh &
 p1=$!

 while ps -p $p1 
 do
    echo hello
    sleep 1
 done
于 2013-10-25T17:41:47.307 に答える