GNU/Linux >> Linux の 問題 >  >> Linux

echo $ とは何ですか?行う?

man bash から :

<ブロック引用>

$?最後に実行されたフォアグラウンド パイプラインの終了ステータスに展開します。

echo $? 最後のコマンドの終了ステータスを返します。 127 を獲得しました これは、最後に実行されたコマンドの終了ステータスであり、何らかのエラーで終了しました (おそらく)。コマンドが正常に終了すると、終了ステータス 0 で終了します (おそらく)。最後のコマンドの出力は 0 でした echo $v 以降 前の行はエラーなしで終了しました。

コマンドを実行すると

v=4
echo $v
echo $?

次のように出力されます:

4 (from echo $v)
0 (from echo $?)

次もお試しください:

true
echo $?

0 が返されます .

false
echo $?

1 が返されます .

true コマンドは何もせず、ステータスコード 0 で終了します;そして false コマンドも何もせず、失敗を示すステータス コード (つまり、ステータス コード 1 ) で終了します。 ).


$? 前のコマンドがどのように機能したか (終了ステータスを確認する) に応じて何をすべきかを決定する方法として、シェルスクリプトで役立ちます。終了ステータスは 0 であると予想できます 前のコマンドが機能した (正常に終了した) 場合、それ以外の場合はゼロ以外の数値。

デモの例:

#!/bin/bash

patience=3

read -t "$patience" -p "Press 'Enter' if you run Unix or Linux, otherwise press 'ctrl+d' "

status="$?"

if [[ $status -eq 0 ]]
then
 echo "That's great :-)"
elif [[ $status -eq 1 ]]
then
 echo "(exit status=$status)
You are welcome to try Unix or Linux :-)"
else
 echo "(exit status=$status)
You did not answer within $patience seconds. Anyway :-)"
fi
echo "'Unix & Linux' is a question/answer web site for
Unix and Linux operating systems"

Unix や Linux なしで bash シェルスクリプトを実行する方法を尋ねられるかもしれません;-)


Linux
  1. 「lc_all=c」は何をしますか?

  2. エコー$は何ですか?行う??

  3. Libgl_always_indirect =1は実際に何をしますか?

  1. 何をしますか。 〜/.bashrcコマンド実行??

  2. Bamfdaemonは何をしますか?

  3. poll() はタイムアウト 0 で何をしますか?

  1. 「cd -」は何の略ですか?

  2. ulimit -s unlimited は何をしますか?

  3. bashスクリプトで set -e とはどういう意味ですか?