
いくつかのエラーをテストしたいので、これには99999より大きいPIDが必要です。私はbashスクリプト、forループを考えています。どんなアイデアがありますか?
答え1
必要なPIDでプロセスを開始するのと同様の操作を実行できます。
while true; do bash -c '[[ "$$" == 99999 ]] && echo PID is 99999'; done
必要なPIDを取得するのを待ってから、echo
実際にテストする必要があるものにステートメントを置き換えることもできます。
引用する
編集する
PID番号が増えるのはなぜですか?他のbashインスタンスを引き続き実行しているためですか?
私はあなたが言うことが今起こっていることだと思います。これは次のように簡単にテストできます。
while true; do bash -c 'echo $$' ; done
マンページでは、PIDが増加し続けていることがわかりますbash
。
-c string -c オプションがある場合は、文字列からコマンドを読み込みます。文字列の後にパラメータがある場合は、$ 0から始まる位置パラメータに割り当てられます。
したがって、私が理解しているように、echo
上記のテストの各ステートメントは別々のプロセスで実行されるため、PIDが増加することがわかります。
答え2
何をしたいのか、より良い方法があるかもしれませんが、次のことをすることにしました。
while [[ 1 == 1 ]]; do sleep 10000& done
多くの項目が開始されますが、sleeps
すべてを開始するには時間がかかる場合があります。プロセスが十分な場合は、クリックしてループをCtrl-C
終了してください。while