このセクションは,その出力ではなく,終了ステータスが主に役に立つコマンド
を記述します.このためそれらは,シェルのif
文の条件やパイプライン
の最後のコマンドとしてよく使用されます.
false
: 何もせず失敗します
false
は,失敗を意味する1の終了ステータスを返す以外何もしま
せん.それは,シェルスクリプトの失敗のコマンドが必要な位置で使用すること
が可能です.
false
は,`--help'と`--version'を含む,すべてのコマンド
ライン引数を無視し,それは,そうしない場合,プログラマがあてにしている期
待する動作を変更するためです.(2)
このバージョンのfalse
は,Cプログラムとして実装されていて,そのた
め,シェルスクリプトの実装より安全かつ高速になり,アカウントの使用を禁止
する目的のダミーシェルとして安全に使用できます.
true
: 何もせず成功します
true
は,成功を意味する0の終了ステータスを返す以外何もしませ
ん.それは,シェルスクリプトの成功のコマンドが必要な位置で使用することが
可能ですが,シェル組み込みコマンド :
(コロン)は同じことをより高速
に行います.
true
は,`--help'と`--version'を含む,すべてのコマンドラ
イン引数を無視し,それは,そうしない場合,プログラマがあてにしている期待
する動作を変更するためです.(3)
このバージョンのtrue
は,Cプログラムとして実装されていて,そのため,
シェルスクリプトの実装より安全かつ高速になり,アカウントの使用を禁止する
目的のダミーシェルとして安全に使用できます.
test
: ファイル形式の調査と値の比較条件式exprの評価に依存して,0(真)または1(偽)のステータスを返します. 表現のそれぞれの部分は,分離された引数にする必要があります.
test
には,ファイルのステータスの調査,文字演算子,そして数字比較
の演算子があります.
ほとんどのシェルは,同じ名前の組み込みコマンドがあるため,スクリプト内や 対話的に簡素なコマンド名を使用すると,ここで記述するものと異なる機能を得 る可能性があります.
以下のオプションの他に,test
は,単独の`--help'や
`--version'を受け入れます.See section 共通のオプション. 単一のオプション
なしの引数も可能です.test
は,引数がnullでない場合,真を返します.
これらのオプションは,ファイルの特定の形式をテストします.(ファイルのす べてですが,すべてのファイルが同じではありません!)
これらのオプションは,特定のアクセス許可をテストします.
これらのオプションはその他のファイルの特徴を調査します.
これらのオプションは文字列の特徴をテストします.文字列はtest
に対
し引用符で囲みませんが,例えばスペースのような,シェルで特別な意味を持つ
文字を保護するために,それらを引用符で囲む必要があるかもしれません.
数値の関係です.引数は,完全な数値(負も可能です),または,stringの
長さを評価する特別な式-l string
にする必要があります.
例えば以下のようにします.
test -1 -gt -2 && echo yes => yes test -l abc -gt 1 && echo yes => yes test 0x100 -eq 1 error--> test: integer expression expected before -eq
test
に対する連結通常の論理結合子です.
expr
: 式の評価
expr
は式を評価し,結果を標準出力に書き出します.それぞれの式のトー
クンは,分離している引数にする必要があります.
オペランドは数字または文字列のどちらかになります.expr
は,あらゆ
るものが,適用されているオペレーションに依存して,整数または文字列がオペ
ランドの位置に存在することを強制します.
文字列はexpr
対し引用符で囲みませんが,例えばスペースのような,シェ
ルで特別な意味を持つ文字を保護するために,それらを引用符で囲む必要がある
かもしれません.
演算子は,挿入辞シンボルや前置キーワードとして与えることができます.カッ コは,通常の方法のグループとして使用可能です(しかし,シェルがカッコを評 価することを避けるために,カッコを引用符で囲む必要があります).
0 式がnullでも0でもない場合. 1 式がnullまたは0の場合. 2 有効な式の場合.
expr
は,パターンマッチングと,その他の文字列演算子をサポートしま
す.これらは,(次のセクションの)数字と関係の両演算子より低い優先順位にな
ります.
^
が暗黙に前置された(基本的にGNU流のgrep
の)正規表現と考慮さ
れます.最初の引数は,この正規表現に対し一致の評価がなされます.
一致の評価が成功し,regexが`\('と`\)'を使用している場合,
:
式は,サブ式に一致したstringの一部となります.それ以外の場
合は一致した文字の数を返します.
一致の評価に失敗した場合,regexで`\('と`\)'が使用されて
いれば:
演算子はnull文字を返し,それ以外では0を返します.
最初の`\( ... \)'の組のみ,戻り値に関係します.追加の組は,正規
表現演算子のグループ化の意味しかありません.
正規表現内では,\+
,\?
,そして\|
は,それぞれ,1以上,
ゼロ以上,オア分離の選択肢の演算子です.SunOSとその他のexpr
はこれ
らを通常の文字として扱います.(POSIXは,どちらの動作も許可します.)正規
表現の構文の詳細は,See section `Regular Expression Library' in Regex.例はsection expr
の使用例,にあります.
/
の場合でも,
tokenを文字列として解釈します.これで,expr length quote
"$x"
やexpr quote "$x" : '.*/\(.\)'
のテストが可能となり,$x
の値が(例えば)/
やindex
に偶然なった場合でも,正しくなります.
この演算子はGNUの拡張です.環境変数@env{POSIXLY_CORRECT}が設定されている
ときは,利用不可能です.
expr
にキーワードとして文字列を解釈させるために,quote
演算
子を使用する必要があります.
expr
は,通常の算術演算子をサポートし,優先順位は順に増加します.
(前のセクションの)文字列演算子は,より順位の低い演算子で,(次のセクショ
ンの)連結子は,より順位が高くなります.
expr
の関係式
expr
は,通常の論理結合と関係式をサポートします.これらは(前のセク
ションの)文字や数字の演算子より優先順位が高くなっています.ここに,低い
優先順位を最初にしたリストがあります.
==
は
=
の同義語です.expr
は最初に,両方の引数を数字に強制し,数
値の比較を行います.どちらかの強制が失敗した場合,辞書的な比較を行います.
expr
の使用例ここに,シェルのメタ文字を引用符で囲むものを含む,いくつかの例があります.
Bourne互換シェルで,シェル変数foo
に1を加えます.
foo=`expr $foo + 1`
$fname
に保存されているファイル名のディレクトリ以外の部分を,
/
を含めずに出力します.
expr $fname : '.*/\(^.*\)' '^|' $fname
\+
が演算子だということを表示する例です.
expr aaa : 'a\+' => 3
expr abc : 'a\(.\)c' => b expr index abcdef cz => 3 expr index index a error--> expr: syntax error expr index quote index a => 0
Go to the first, previous, next, last section, table of contents.