|
シェル実行中にCtrl+Cして、強制終了させたときに、 バックグラウンドで動いていたシェルも終了させたいんですが、 イマイチうまく動きません。ちなみにKシェルです。 back_pid=`job -l awk '{print $3}'`でPIDを取得して kill -9 $back_pidで強制終了 というのを、trap '〜' INTの中でやろうと思ったんですが、 trapの''の中にawkの''があるせいで、エラーになってしまいます。 でも、これだと、バックグラウンドで動いてるプロセスが無い場合も、 未設定の値でkillが走ってしまうので、あまり良くないですが・・・ 何か良い方法はありませんか? |
|
>>3045 has > Win2k上でnslookupがうまくいってないようなので、ついでにそちらも > 監視してみたところ、Non-Existent Domainが返されていました。 謎ですねぇ。こっちを解決したら Linux の問題も解決したりして。 >>3047 KEI Windows はわかりません。 >>3048 HITO > trapの''の中にawkの''があるせいで、エラーになってしまいます。 クォートの規則がわからなかったら、 siginthandler(){ back_pid=.... kill ... } trap siginthandler INT と別関数にしましょう。 > でも、これだと、バックグラウンドで動いてるプロセスが無い場合も、 > 未設定の値でkillが走ってしまうので、あまり良くないですが・・・ if [ "$back_pid" != "" ]; then kill ... fi てな感じで。 |
|
はじめまして、さとしです。 突然で申し訳ないのですが教えて欲しい事があります shell内で、あたかも関数の様に処理を作成して、同一shell内の呼び出し元に返り値を返すことって出来ますか? |
|
>>3050 さとし shell って言ってもいくつか種類があるんですけんども。どのシェルを使って いるのか ちゃんと書きましょう。 sh 系なら func(){ echo "$@" return 8 } func 1 2 3 4 hoge fuga echo $? とか。 |