問題タブ [bash-trap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
433 参照

bash - SIGINT で BASH ブレーク readline

ソケットの読み取りループ内で SIGINT ctrl+c をキャッチしようとしましたが、要求しているブレークは新しい行の後にのみ処理されます。そのため、実行中のアプリを ctrl+c すると、新しい行がソケットに到着するのを待たなければループが中断されず、アプリが終了しません。

これは最小バージョンです:

ループをすぐに中断してアプリを終了するにはどうすればよいですか?

0 投票する
2 に答える
6430 参照

bash - 終了トラップを持つスクリプトからシェル エラーが発生した場合に、呼び出し元に終了コードを伝達する

EXIT トラップを使用して Bash スクリプトで構文エラーが発生した場合、呼び出し元に終了コードを伝達することは可能ですか? たとえば、私が持っている場合:

次に、実行すると、スクリプトが実際に正常に終了しなかった場合でも、終了コード 0 が返されます。

しかし、終了トラップをコメント アウトすると、スクリプトは 1 を返します。または、バインドされていない変数を含む行をゼロ以外を返すコマンド (たとえば/bin/false) に置き換えると、その終了値が希望どおりに伝達されます。

0 投票する
2 に答える
2156 参照

bash - SIGINT をフォアグラウンド プロセスに送信すると機能しますが、バックグラウンドでは機能しません

私は2つのスクリプトを持っています。script1はscript2を生成し、それにシグナルを送信しSIGINTます。しかし、script2のトラップが機能していないようです?!

スクリプト 1:

スクリプト 2:

に変更./script2 &./script2て押すとCTRL+C、すべてが正常に機能します。それで、私は何を間違っていますか?

0 投票する
1 に答える
1561 参照

bash - シェル関数でトラップシグナルが機能しないのはなぜですか?

これはうまくいきます:

ただし、次のように実行しても /tmp/.log.pipe は削除されません。

理由と方法を知りたいですか?

これが私のコードです。リモートマシンのログを追跡するために使用します。

0 投票する
3 に答える
1690 参照

c++ - トラップが SIGSEGV のキャッチに失敗する

このスクリプトを使用してトラップをテストしています。

そしてforever.cpp、再帰関数を実行するだけです:

ただしSegmentation fault: 11、印刷の代わりに提供しますsegfault。理由はわかりません。

0 投票する
2 に答える
315 参照

bash - エクスポートされた関数のトラップは黙って無視されました

この Bash スクリプトは期待どおりに動作します。

test_this.sh

印刷します

ただし、この関数をエクスポートしようとすると、トラップに失敗します。

test_this2.sh

コマンドラインでこれを入手して実行します。

結果は

罠はどこに行った?