bash-trap

    2

    1答えて

    このプログラムでは、BASHを使用して、CTRL-Cを何度も(無制限ではなく)無視またはトラップしようとしています。 私は一度コマンドを無視する方法を知っています。 しかし、私はそれが無視される時間を増減する方法は知らない。 CODE: #! /bin/bash trap 'justonce' 2 justonce() { echo "you sure?" trap 2 }

    4

    1答えて

    現在、シェルスクリプトが同時ログに毎回失敗する理由を理解しようとしています。 私は、次のようなシェルの機能を持っている: log() { local l_text=$1 local l_file="/path/to/logs/$(date +%Y%m%d)_script.log" local l_line="$(date +'%Y-%m-%d %H:%M:%S')

    5

    1答えて

    :source.shは #!/bin/bash testfunc "source" #!/bin/bash function preexec() { echo -e "\n-->preexec command: $BASH_COMMAND" } trap 'preexec' DEBUG function testfunc() { echo "testfu

    4

    2答えて

    引数なしtrapは、すべてのトラップに対して現在設定されているコマンドを出力します。トラップの保存と復元のための標準的な例は、bashで失敗したのでしかし、サブシェルが、トラップを継承しません:save_trapsは常に空の文字列ですので save_traps=$(trap) ... eval "$save_traps" を割り当てのRHS上のトラップは、サブシェルで実行されます。 t

    2

    1答えて

    私は、3種類のプロセス間で通信するために名前付きパイプを使用しています。プロデューサ、一部の読者、いくつかのライターです。次に、すべてのプロセスを実行するだけのスクリプトを作成しました。run.shプロセスが終了するか、すべての子プロセスが終了すると、そのプロセスも終了します。 run.shスクリプトは、次のとおりです。 #!/bin/bash MAX_WRITERS=2 MAX_READER

    3

    1答えて

    バックグラウンドプロセスが終了したときに検出する必要があります。したがって、私はトラップを設置しました。 run_guiとrun_ai1は単純なexec関数です。 run_gui & gui_pid=$! run_ai1 & ai1_pid=$! trap 'echo foo' SIGCHLD while true; do echo "Started the loop"

    3

    1答えて

    私はいくつかのトラップを管理するスクリプトを開発しています。初めに私はこのコードでINTとSIGTSTPを管理し、それは非常にうまく機能: #!/bin/bash function capture_traps() { echo -e "\nDoing something on exit" exit 1 } trap capture_traps INT trap cap

    4

    2答えて

    Bashで(現在のセッションまたはスクリプトで)trapが設定されていることを確認する方法はありますか? 理想的には、trapが割り当てられた信号のリストを取得できますが、それができない場合は、各信号を個別にチェックするだけで済みます。 $ trap trap -- 'f' SIGINT trap -- '' SIGTSTP trap -- '' SIGTTIN trap -- '' SI

    8

    1答えて

    私はいくつかの読み取り操作を実行するデバイスをマウントしてアンマウントするbashスクリプトを持っています。デバイスが非常に遅いので、スクリプトは完了するまでに約15秒かかっています(マウントは少なくとも5-6秒かかります)。このデバイスをマウントしたままにすると他の問題が発生する可能性があるため、このスクリプトを中断しないようにします。 私は正しくSIGINT(Ctrl + c)を処理できますが

    1

    1答えて

    私はbashの読み込み機能を使いこなしています。私は今のところ私の現在のシェルの上にシンプルなレイヤーがあるのが好きです。 read -eはタブ完了とそれ以前のコマンドを実行し、ctrl + dでEOFを送信すると元のシェルに戻ります。私はSIGINT、Ctrl + Cを扱ういくつかの助けが欲しい Bash (or other shell): wrap all commands with func