はこのようなものです:バッシュ(およびその他のシェル)では
if
CONDITION_SEE_BELOW
then
server_var_shortname=$server_shared_shortname
server_var=$server_shared
server_var_bare=$server_shared_bare
else
server_var_shortname=$server_vps_shortname
server_var=$server_vps
server_var_bare=$server_vps_bare
fi
、CONDITION_SEE_BELOW
部分がコマンドである必要があります。コマンドは数値を返しますが、通常は0
は「真」を意味し、ゼロ以外の値は「偽」を意味します。 then
句は、コマンドが0
または他のすべてのケースでelse
句を返した場合に実行されます。戻り値は、コマンドによって出力されるテキストではありません。シェルでは、コマンドを実行した直後に特殊変数expand $?
を使用してアクセスすることができます。
あなたは一つのことを行うコマンドtrue
とfalse
、とのことをテストすることができます。ゼロ(true
)と非ゼロ(false
)戻り値を生成します。コマンドラインでこれを試してみてください。
true ; echo "true returns $?"
false ; echo "false returns $?"
あなたが条件にしたい任意のコマンドを使用することができます。条件を定義するというアイデアで作成されたコマンドは、古典的なテストコマンド[ ]
(実際のコマンドは、冒頭の括弧のみであり、test
コマンドでも利用可能です)と二重括弧で囲まれたBash-特定の[[ ]]
(これは技術的にはコマンドではなく、特別なシェル構文です)。
例えば、あなたのswitch
変数に何もない(ヌル文字列)か何か(少なくとも1文字の文字列)が含まれているとします。あなたの場合、ヌル文字列を "false"とし、本当だ"。あなただけのスペースとタブを含む文字列が空であると見なされるべきでOKであれば
[ "$switch" ]
は(コマンドの引数の標準のシェル拡張と単語分割の結果として発生します。その後、条件として使用することができます)、二重引用符を削除することができます。
double-bracketテストコマンドはほとんど同じですが、二重引用符はほとんどの場合必要ありません。式の中に&&
と||
というブール論理をサポートしています。特徴として。それは、しかし、bashismです。
あなたは、両方のテストコマンドを実行することができるさまざまなテストを基準としてこれを使用することができます。
https://www.gnu.org/software/bash/manual/bashref.html#Bash-Conditional-Expressions
全くシェルプログラミングに興味があれば、各種試験を知るようにしてくださいますあなたは頻繁にそれらの多くを使用する可能性が高いので、使用することができます。
重複は、「ブールをカバーこの質問の側面は、基本的ではあるが、Bashや他のPOSIX風シェルの 'if'、' then'、 'elif'、' else'、 'fi'の重要な機能も含まれています。問題の表記法はよりCに似ています.Cシェルはその表記をより直接的にサポートしていますが、Cシェルを使用しないでください。特に重大なスクリプト作業では使用しないでください。海の殻は海岸に残すべきです)。 –