前: test invocation, 上: Conditions
exprは式を評価し,結果を標準出力に書き出します.それぞれの式 のトークンは,分離している引数にする必要があります.
オペランドは整数または文字列のいずれかになります.整数は,一桁以上の十 進数と,追加で`-'を前置したものから成り立ちます.exprは, あらゆるものが,適用されているオペレーションに依存して,オペランドの位 置に存在する整数または文字列を変換します.
文字列はexpr対し引用符で囲みませんが,例えばスペースのような,
シェルで特別な意味を持つ文字を保護するために,それらを引用符で囲む必要
があるかもしれません.しかし,引用符で囲まれているかどうかに依存せず,
文字列オペランドは,括弧や+
のようなexprの演算子にすべ
きではなく,引用符で囲まれているものを評価するために,任意の文字列を
$str
をシェルに渡すことは安全ではありません.これを排比する方法
の一つは,GNUの拡張+
(例えば+ "$str" = foo
)で
す.より移植性の高い方法は," $str"
を使用し,前置するスペー
スを数に入れるため式の結果を調整することです(例えば" $str" = " foo"
).
オプションとして間違って解釈される可能性があるので,符の整数や前に `-'が付く文字列をexprの最初の引数として渡すべきではあり ません.これは,括弧で避けることが可能です.また,移植性の高いスクリプ トでは,整数の形式となりうる文字列演算子を使用すべきではありません.こ れは,上記のスペースを前置する方法で回避可能です.
演算子は,挿入辞シンボルや前置キーワードとして与えることができます.カッ コは,通常の方法のグループとして使用してもかまいません.しかし,シェル が評価することを避けるために,カッコと多くのオペレータを引用符で囲む必 要があります.
0 式がnullでも0でもない場合. 1 式がnullまたは0の場合. 2 式が構文上有効な場合. 3 エラーが生じた場合.