| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
ページの作成:「==シェルプログラミング 条件== ===test ([) コマンド=== [シェルプログラミング] *真偽の判定 *ほとんどのシステムでは、test…」
==シェルプログラミング 条件==

===test ([) コマンド===
[シェルプログラミング]

*真偽の判定
*ほとんどのシステムでは、test コマンドと [ コマンドは同じもの

'''引数に指定されたファイルが存在するか判定'''
#!bin/sh
if test -f "$1"
then
echo "$1 found."
fi

if [ -f "$1" ]; then
echo "$1 found."
fi
*'''[''' はコマンドなので、条件との間には空白が必要
*ifと同じ行にthenを記述する場合には、''';''' (セミコロン)が必要
*testコマンドが判定できる条件は、文字列比較、算術比較、ファイルの判定

=====文字列比較=====
{|class="wikitable"
!文字列比較
!結果
|-
|string1 = string2
|文字列が等しければ真
|-
|string1 != string2
|文字列が等しくなければ真
|-
|-n string
|文字列がnullでなければ真
|-
|-z string
|文字列がnull(空文字)であれば真
|-
|}

=====算術比較=====
{|class="wikitable"
!算術比較
!結果
|-
|exp1 -eq exp2
|2つの式が等しければ真
|-
|exp1 -ne exp2
|2つの式が等しくなければ真
|-
|exp1 -gt exp2
|exp1がexp2より大きければ真 >
|-
|exp1 -ge exp2
|exp1がexp2より大きいか、等しければば真 >=
|-
|exp1 -lt exp2
|exp1がexp2より小さければ真 <
|-
|exp1 -le exp2
|exp1がexp2より小さいか、等しければば真 <=
|-
|!exp
|式の真偽を反転
|-
|}

=====ファイルの判定=====
{|class="wikitable"
!ファイルの判定
!結果
|-
|-d file
|ディレクトリなら真
|-
|-e file
|存在すれば真
|-
|-f file
|通常のファイルなら真
|-
|-g file
|set-group-idビットがセットされていれば真
|-
|-r file
|読み取り可能なら真
|-
|-s file
|サイズが0でなければ真
|-
|-u file
|set-user-idビットがセットされていれば真
|-
|-w file
|書き込み可能なら真
|-
|-x file
|実行可能なら真
|-
|}

'''引数に指定されたファイルの判定'''
#!/bin/sh

if [ -f "$1" ];then
echo "file $1 exists."
fi

if [ -d "$1" ];then
echo "$1 is directory."
else
echo "$1 is not a directory."

if [ -r "$1" ];then
echo "readable."
fi
if [ -w "$1" ];then
echo "writable."
fi
if [ -x "$1" ];then
echo "executable."
fi
fi

----
上記はこの本からの覚書。

非常にわかりやすく説明されている良書
{{amazon|4797327014}}

----
{{amazon|4797327014}}

案内メニュー