head -15 textfile.txt
次のコマンド$X
で使用するために出力を変数にどのように入れることができますか?if
if $X = 'disabled' then
?
答え1
x="$(head -15 testfile.txt)"
if [ "$x" = disabled ]
then
echo "We are disabled"
fi
通常、コマンドの出力をシェル変数にキャプチャするには、次の形式を使用します variable="$(command args ...)"
。このvariable=
部分は宿題です。この$(...)
部分はコマンドの置換です。
また、シェルはif
型の文を実行しないことに注意してくださいif $X = 'disabled'
。シェルはコマンドが続くと予想し、if
シェルはコマンドの戻りコードを評価します。上記の例では、test
私が実行したコマンドはまたはtest ...
で書くことができます[ ... ]
。
多くの人は、シェルスクリプトで小文字の変数を使用するのが最善の方法であると信じています。これは、システム定義変数が大文字であり、誤って上書きしたくないためです。一方、システム変数は呼び出されないため、X
実際には問題になりません。