-1

このスクリプトを作成しましたが、ジョブ -ls および ps|grep を実行しても結果が得られません。これが私のスクリプトです。

#!/bin/bash
trap 'echo -e "kill Command given \n";exit 2'SIGINT SIGTERM
count=1
echo "start of the program"
while [ $count -le 10 ]
do
    echo "Loop #${count}"
    sleep 10
    count=$[ count + 1 ]
done
echo "end of program"
4

2 に答える 2

1

この構文は無効です:

trap 'echo -e "kill Command given \n";exit 2'SIGINT SIGTERM

有効な間隔がないためです。代わりにこれを使用してください:

trap 'echo -e "kill Command given \n"; exit 2' INT TERM

これは私にとってはうまくいくので、おそらくあなたも何か間違ったことをしているでしょう:

# Start 10 sleep processes in the background.
for x in {1..10}; do
    sleep 60 &
done

$ pgrep -c sleep
10

現在実行中のスリープ プロセスの数である、期待どおりの結果が得られています。他の何かを期待している場合は、質問を更新して、予想される出力の例をいくつか提供してください。

于 2012-12-20T19:28:22.393 に答える
0

私はこれを使います

ps | awk /$1/'{print $4; exit}'
于 2012-12-20T18:35:24.910 に答える