コマンドを実行しても出力が表示されないことがあるため、コマンドが機能したかどうかはわかりません。正しく実行されたかどうかにかかわらず、すべてのコマンドにフィードバックを与えることは可能ですか?または、最低限、実行したフィードバックIDを表示します(正しくまたはそうでない場合)
承認された回答:
(Ubuntuに質問内に投稿しているので デフォルトのシェル、つまりBashについて話していると想定できます。)
Stack Overflowの質問には非常に良い答えがありますシェルスクリプトの場合:実行時にシェルコマンドをエコーします (これはUbuntu固有のソリューションだけではありません)。
あなたがする必要があるのはセットを使うことです 詳細またはxtraceをオンにするコマンド。
set -o
現在のパラメータがオンに切り替えられているリストが表示されます またはオフ 。
set -v
または長形式バージョン:
set -o verbose
冗長になりますオン 。
しかし、あなたが望むのは実際にはxtraceだと思います。これにより、実行するすべてのコマンドがエコーされるだけでなく、パラメーターが拡張され、より多くのフィードバックが得られます。したがって、ターミナルで「hi」と入力するのと同じくらいばかげたことをすると、入力した内容のエコーと、シェルがコマンド「hi」を実行しようとしたことのレポート/トレースが表示されます(下のスクリーンショットを参照) ):
xtraceを有効にするには:
set -x
または:
set -o xtrace
これらのパラメータを無効にするには、プラス記号 + を除いて、(直感に反して)同じコマンドを呼び出します。 ダッシュやマイナス記号の代わりに、たとえば:
set +v
冗長なオフになります 、同様に:
set +x
xtraceをオフにします 。
シェルオプションの詳細なガイドは、第33章オプション、高度なBash-Scriptingガイドにあります。 。