exit

シェルスクリプトの終了コードが区別可能であることを確認してください。
exit

シェルスクリプトの終了コードが区別可能であることを確認してください。

内部的に呼び出される2つのシェルスクリプトa.shとがあるとします。次に、終了コードまたは終了を使用できると仮定します。b.sha.shb.shb.sh012 の終了コードをa.sh終了コードと区別するためにどのような技術を使用できますかb.sh?たとえば、a.sh終了コードを使用して終了できると判断した場合、呼び出し元にとって1これは不明です。失敗しましたかa.sh、それともb.sh失敗しましたか?これは終了コードを使用しないでください。a.shただし、選択できる終了コードの数は限られており、理論的に進化するにつれて、追加の終了コードがいくらでも追加される...

Admin

前の行がコマンドであることを確認してください。
exit

前の行がコマンドであることを確認してください。

活性化したいWindowsターミナルシェルの統合バッシュから。 (私を判断しないでください。)良い機能は、端末が各コマンドのスクロールバーにマーカーを表示できることです。その色はコマンドの実行が成功したかどうかによって異なります。ただし、コマンドが実行されない場合(空白行、Ctrl-C...)、色は中間色のままにする必要があります。 これは、プロンプトに特別なエスケープシーケンスを配置することによって行われます。現在のプロンプトの単純化されたバージョンは次のとおりです。 PS1="\[\e]133;D;\$?\a\] \$ \[\e]133;B\a\]" ...

Admin

エラーが発生した場合、0で終了するtarの実装はありますか?
exit

エラーが発生した場合、0で終了するtarの実装はありますか?

Vimランタイムコミット3d37231437fc0f761664a7cabc8f7b927b468767ファイル名に警告、エラー、不適切または認識できない単語が含まれていないという仮定を削除して、tar編集プラグインを修正してください。プラグインにはメッセージが印刷されますが、終了コードが0の場合にエラーを検出するこのコードが含まれています。 コミットでわかるように、 しかし、全体のif条件が少し不快だったようです。エラーが発生した場合は、tarプログラムの戻りコードを確認するため、前のifステートメントでエラーが検出された可能性があります。 しかし、どの...

Admin

修正する:
exit

修正する:

zshスクリプトには長いコマンドパイプラインがあります。 pv /dev/sda > sda.raw | sha256sum > sda.raw.sha256 | cut -c61-64 | read SHASUM ifすべてのコマンドが正常に終了したかどうか、ステートメント内でどのように確認できますか? わかりました${pipestatus[@]}。しかし、配列です。したがって、各要素を個別に確認する必要があります。 ${pipestatus[@]}含まれている内容だけを確認するショートカットはありますか0? 修正する: いくつかの奇妙な動作...

Admin

出力リダイレクトを使用してcshからスクリプトを呼び出す
exit

出力リダイレクトを使用してcshからスクリプトを呼び出す

私が欲しいもの: #!/bin/csh # call /myscriptpath/myscript.any and redirect 2>&1 and get retval and output set my_msg = `/myscriptpath/myscript.any` set my_ret = `echo $?` myscript.anyで終了コードをキャプチャする方法は? 可能であれば、myscript.anyでメッセージをどのようにキャプチャできますか? /myscriptpath/myscript.any これは期待どお...

Admin

ifステートメントでリダイレクトを使用したりファイルに書き込んだりすると、終了コードにどのように影響しますか?
exit

ifステートメントでリダイレクトを使用したりファイルに書き込んだりすると、終了コードにどのように影響しますか?

存在する扱いにくい echo 'a string' > test.txt echo $? 0 そして [[ $(echo 'a string') ]] echo $? 0 しかし、 [[ $(echo 'a string' > test.txt) ]] echo $? 1 他の例 curl -so 'curl-8.2.1.tar.gz' https://curl.se/download/curl-8.2.1.tar.gz echo $? 0 または [[ $(curl -so 'curl-8.2.1.tar.gz' https://cur...

Admin

'return 0'は 'true'と同じですか(シェル環境のソーススクリプトから)?
exit

'return 0'は 'true'と同じですか(シェル環境のソーススクリプトから)?

私はユーザーが自分のシェルにソースを提供する必要がある移植性の高いスクリプトを開発しています。そのため、POSIXスクリプトを使用する必要があります。 スクリプトには便利な関数がたくさんあり、そのうちの1つは呼び出し関数の状態を返すという点で特別ですtrue。false return 0さて、私はこのような状況でそれを使用しました。しかし、より読みやすく、trueforfalseもreturn 1それぞれ動作するようです。 問題はこれが有効かどうかです。全く同じようにそれとも違いがある場合です。ありがとうございます。 ...

Admin

プロセスが終了したことを知らせるのではなく、「trap」がゼロを渡すのはなぜですか?
exit

プロセスが終了したことを知らせるのではなく、「trap」がゼロを渡すのはなぜですか?

以下を考慮してください。 #!/bin/bash trap 'echo $?' INT kill -INT $$ 出力:0 ここで私は130私のシステムを楽しみにしています。もちろん私がaをしたならCtrl + C私は130。 HUPまたは同じ他の信号でも同様ですTERM。trap多くの信号をキャプチャする設定があると、ハンドラが呼び出された信号の正しいエラーコードで終了できないため、この動作は驚くべきことです。 #!/bin/dash exit_abrupt() { exit_code=$? echo "Encountered an ...

Admin

プロセスの終了ステータスのキャンセル
exit

プロセスの終了ステータスのキャンセル

$?プロジェクトには、コマンドの終了ステータスを読み取ることができるテスト設定があります。 foobar私のテストでは、文字列が出力にないことを確認したいと思います。 コマンドを実行するとき: ./program | grep foobar 失敗を示すために戻ります1。 返品するにはそれが必要です0。 戻り値をキャンセルする方法はありますか? ...

Admin

2番目のコマンドは、パイプラインの最初のコマンドの終了ステータスを取得します。
exit

2番目のコマンドは、パイプラインの最初のコマンドの終了ステータスを取得します。

私の問題は次のようになります終了状態を別のプロセスにパイプにインポートするしかし、パイプラインから2番目のコマンドの終了状態を取得したいと思います。以内に管路。 ここに例があります - false | echo $? 0期待よりも報酬1 PIPESTATUS以前のエラーコードを提供 false | echo $PIPESTATUS 0最初に返した後、 を返すと、1操作自体の後に結果が得られます。私の意図は、次のような関数を作成することです。 debug() { # Eventually will be formatted as JSON echo...

Admin

状態141に設定されたパイプライン出力の最初の行を取得します。これはset -eo Pipelinefailを使用してbashスクリプトに失敗します。
exit

状態141に設定されたパイプライン出力の最初の行を取得します。これはset -eo Pipelinefailを使用してbashスクリプトに失敗します。

コマンドを実行するbashスクリプトがあり、そのスクリプトから最初の出力行を取得したいと思います。 明らかな答えはですsome_command | head -1。そうですか?まあ、これは99%の場合に動作しますが、出力が十分に大きい場合、私はset -eo pipefail一番上にあるため、終了コード141で失敗することがあります。awk '{ print; exit; }'より多くのケースで動作しますが、出力が十分に大きい場合はまだ失敗します。この単純なスクリプトは問題を再現します。 #!/bin/bash set -eo pipefail seq 1 ...

Admin

bash印刷が終了していなくても終了するのはなぜですか?これはバグですか?
exit

bash印刷が終了していなくても終了するのはなぜですか?これはバグですか?

0個または1個の数値引数を使用して終了します。たとえば、exit「exit 42exit」を印刷してシェルを終了します。 exit helloexitは、エラーメッセージの印刷、「exit」の印刷、シェルの終了、値255の戻りなどの無効な引数を使用します。 たとえば、パイプの終了はexit | cat | exit「exit」を印刷せず、コマンドの戻り値は使用しているbashのバージョンによって異なります。これはシェルを終了しません。 exit 1 2 3exitは、エラーメッセージを印刷する、「exit」を印刷するがシェルを終了しないなど、いくつかのパラメ...

Admin

systemd が予期しない終了を失敗として扱うようにします。
exit

systemd が予期しない終了を失敗として扱うようにします。

システムサービスユニットにサードパーティの実行可能ファイルをラップして管理します。私はこのプログラムの動作を変えることができず、その終了コードも信頼しません。終了コード 0 や外部 SIGTERM を含む systemd によって発生しなかった終了を失敗として扱い、systemd のインタフェースを介して違いを検出できるようにしたいと思います。 現在私のデバイスは次のとおりです。 [Unit] Description=Foo service Requires=bar.service After=bar.service [Service] ExecStart...

Admin