Help us understand the problem. What is going on with this article?

Bash の if 文(test文)のオプションを整理してみた

More than 1 year has passed since last update.

毎回調べるので備忘として整理する。

数値の比較オプション

書式 : 数値△オプション△数値
例  : if [ ${hoge} -eq 0 ];then

オプション 説明 補足
-eq 等しければ真 equal
-ne 等しくなければ真 not equal
-lt より小なら真 less than
-le 以下なら真 less than or equal
-gt より大なら真 greater than
-ge 以上なら真 greater than or equal

文字列の比較オプション

書式 : 文字列△オプション△文字列
例  :  if [ "${hoge}" = "fuga" ];then

オプション 説明
= 等しければ真
!= 等しくなければ真

ファイル・ディレクトリのオプション

書式 : オプション△ファイルやディレクトリ
例  : if [ -d ${hoge} ];then

オプション 説明
-d ディレクトリなら真
-f 普通のファイルなら真
-s サイズが 0 より大きければ真
-e 存在するなら真
-r 読み取り可能なら真
-w 書き込み可能なら真
-x 実行可能なら真

文字列長のオプション

書式 : オプション△変数や文字列
例  :  if [ -z ${hoge} ];then

オプション 説明
-z 文字列長が 0 なら真
-n 文字列長が 0 より大なら真

その他使うやつ

引数の比較(getopts使わない)

例  : if [ $# -eq 2 ];then

変数 説明
$# 実行時に指定された引数の数
$1 実行時に指定された 1 番目の引数
$n 実行時に指定された n 番目の引数

実行結果の比較

例  : if [ $? -ne 0 ];then

変数 説明
$? 直前のコマンドの実行結果

シェル書いてると、いつも忘れてぐぐってることをここにまとめていこうと思います。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away