• BPnet
  • ビジネス
  • IT
  • テクノロジー
  • 医療
  • 建設・不動産
  • TRENDY
  • WOMAN
  • ショッピング
  • 転職
  • ナショジオ
  • 日経電子版
  • PR

  • PR

  • PR

  • PR

  • PR

Linuxコマンド集

【 [ 】 条件式の真偽を判定する

2006/02/27 日経Linux
 Linuxコマンド集
コマンド集(機能別) | コマンド集(アルファベット順) | コマンド逆引き大全 | シェル・スクリプト・リファンレス

[  条件式の真偽を判定する (1)

 構文  
[ 条件式 ]

 条件式  
-G ファイル 指定したファイルが存在し,ファイルのグループが現在実行しているユーザーであれば真を返す
-O ファイル 指定したファイルが存在し,ファイルの所有者が現在実行しているユーザーであれば真を返す
-S ファイル 指定したファイルが存在し,ソケットであれば真を返す
-b ファイル 指定したファイルが存在し,ブロック・デバイスであれば真を返す
-c ファイル 指定したファイルが存在し,キャラクタ・スペシャル・ファイルであれば真を返す
-d ファイル 指定したファイルが存在し,ディレクトリであれば真を返す
-e ファイル 指定したファイルが存在すれば真を返す
-f ファイル 指定したファイルが存在し,通常のファイルであれば真を返す
-g ファイル 指定したファイルが存在し,パーミッションにセット・グループIDが付いていれば真
-h ファイル,-L ファイル 指定したファイルが存在し,シンボリック・リンクであれば真を返す
-k ファイル 指定したファイルが存在し,パーミッションにスティッキ・ビットが付いていれば真
-p ファイル 指定したファイルが存在し,名前付きパイプであれば真を返す
-r ファイル 指定したファイルが存在し,読み取り可能であれば真を返す
-s ファイル 指定したファイルが存在し,ファイル・サイズが1以上であれば真を返す
-t ファイル 指定したファイルが端末でオープンされていれば真を返す
-u ファイル 指定したファイルが存在し,パーミッションにセット・ユーザーIDが付いていれば真を返す
-w ファイル 指定したファイルが存在し,書き込み可能であれば真を返す
-x ファイル 指定したファイルが存在し,実行可能であれば真を返す
ファイル1 -nt ファイル2 指定したファイル1がファイル2より修正時刻が新しければ真を返す
ファイル1 -ot ファイル2 指定したファイル1がファイル2より修正時刻が古ければ真を返す
ファイル1 -ef ファイル2 指定したファイル1とファイル2のデバイス番号とiノード番号が同じであれば真を返す
文字列,-n 文字列 指定した文字列が1文字以上であれば真を返す
-z 文字列 指定した文字列が0文字(何もない)状態であれば真を返す
文字列1 = 文字列2 文字列1と文字列2が同じであれば真を返す
文字列1 != 文字列2 文字列1と文字列2が違ければ真を返す
数値1 -eq 数値2 指定した数値1と数値2が同じであれば真を返す
数値1 -ne 数値2 指定した数値1と数値2が等しくなければ真を返す
数値1 -lt 数値2 指定した数値1が数値2より小さければ真を返す
数値1 -le 数値2 指定した数値1が数値2より小さいか同じであれば真を返す
数値1 -gt 数値2 指定した数値1が数値2より大きければ真を返す
数値1 -ge 数値2 指定した数値1が数値2より大きいか同じであれば真を返す
! 条件式 条件式が偽であれば真を返す
条件式1 -a 条件式2 条件式1と条件式2の結果が共に真であれば真を返す
条件式1 -o 条件式2 条件式1または条件式2の結果のいずれかが真であれば真を返す

 説明  

条件式を評価し,0(真)か0以外(偽)の戻り値を返す。以下の例のようにifやwhileの条件式の部分に埋め込むと応用が効く。なお,以下の例で,ifの条件式を[コマンドを使わないで記述すると,「test $? != 0 」になる。


 使用例  
pingコマンドが通らなかった場合にメッセージを出力する
ping -c1 $1 > /dev/null
if [ $? -ne 0 ]
then
  echo "Can't reach to" $1
fi

 関連事項  
testifuntilwhile

あなたにお薦め

連載新着

連載目次を見る

今のおすすめ記事

ITpro SPECIALPR

What’s New!

経営

アプリケーション/DB/ミドルウエア

クラウド

設計/開発

サーバー/ストレージ

クライアント/OA機器

ネットワーク/通信サービス

セキュリティ

もっと見る