2017/04/11

LPICの問題_20141217_簡単なスクリプトをカスタマイズまたは作成する
■例題
シェルスクリプトで条件チェックを行うコマンドを選びなさい。

1. check
2. test
3. condition
4. =

解答と解説

答えは 2. test です。

testコマンドを使用すると、ファイルやディレクトリの有無やパーミッションなど、様々なチェックを行うことができます。結果は真偽値(TrueかFalseか)で返ってくるので、if文と組み合わせて条件分岐を行うことができます。

○ファイル、文字列検証の条件オプション例
-d ディレクトリ
-f 通常のファイル
-e ファイルの存在
-r 読み取り可能
-w 書き込み可能
-x 実行可能
-z 文字列の長さが0
-n 文字列の長さが0よりも大きい

○testコマンドの実行例
$ touch file
$ mkdir dir
$ test -f file; echo $?
0 ※ファイルなので真(戻り値0)
$ test -d file; echo $?
1 ※ディレクトリではないので偽(戻り値1)
$ test -f dir; echo $?
1 ※ディレクトリなので真(戻り値0)
$ test -d dir; echo $?
0 ※ファイルではないので偽(戻り値1)

testコマンドではなく、条件を[]で括ることでも同じ結果が得られます。

○testコマンドを[]で置き換える
$ [ -f file ]; echo $?
0

このような条件分岐はサービスの起動スクリプトなどで多用されているので、しっかりと覚えておきましょう。



 ホーム日常 未分類