誰かが存在しないコマンドを呼び出すとしましょう。後で実行するスクリプトでそのエラー状態を取得する唯一の方法は、次の方法を使用することです。source
つまり、スクリプトの名前がdummy
そのコンテンツの場所にあると仮定します。
#!/bin/bash
echo $?
呼び出すと、私が探している(127)終了ステータスのみを取得できることがわかりますが、これを使用せずにスクリプト内の最後のコマンドから終了ステータスを取得するのにsource dummy
役立つ可能性がある他の方法はありますか?私が望む動作を得るために単に電話をかけることはできますか?alias
source
dummy
前のコマンドのタイプミスを確認するスクリプトを作成したいと思います。これを行うには、最初に潜在的なミスがあるかどうかを確認するために前の終了ステータスを検出する必要があるため、スクリプトは最後のコマンドの終了ステータスを取得できる必要があります。また、ユーザーが実行する必要がある設定の量を最小限に抑えて、ユーザーが電話をかけただけで、残りの部分をdummy
知って処理するようにしたいと思います。だから私はsource
「または」.
や「または」を避けようとしますalias
。
最後のコマンドの終了状態の初期テストは、以下を使用することでした。
#!/bin/bash
ESTATUS=$? # Saved exit status for later
echo $ESTATUS
しかし、これを行うには、またはをsource
使用せずに複製するための良い方法はありますか?source
.
ベストアンサー1
このスクリプトを使用することもできますhttps://github.com/rcaloras/bash-preexec(議論https://superuser.com/questions/175799/does-bash-have-a-hook-that-is-run-before-executing-a-command)precmd()関数を使用して$?