1、$word is empty、true
3、regex pattern check
if [ -z ${word} ]; then
echo "is null"
fi
2、$word is not empty、true
if [ -n ${word} ]; then
echo "is not null"
fi
式 | 真になる条件 |
---|---|
文字列1 = 文字列2 | 文字列1と文字列2が等しいとき |
文字列1 != 文字列2 | 文字列1と文字列2が等しくないとき |
-z 文字列1 | 文字列1の長さが0のとき |
-n 文字列1 | 文字列1の長さが0ではないとき |
#$LANGにJPが存在するかどうか:
if [[ $LANG =~ [.*JP.*] ]]; then
echo "$LANG HAS JP EXIST."
fi
注意: pattern should be in [pattern] or as a parameter
pattern=".*JP.*"
if [[ $LANG =~ $pattern ]]; then
echo "$LANG HAS JP EXIST."
fi
-------------------------------------------------
1、ファイル存在 if [-e ${filepath}]; then
echo "${filepath}が存在しています"
fi
#ファイル存在しない
if [! -e ${filepath}]; then
echo "${filepath}が存在しません"
fi
2、フォルダ存在
if [-d ${folderpath}]; then
echo "${folderpath}が存在しています"
fi
if [! -d ${folderpath}]; then
echo "${folderpath}が存在しません"
fi
3、ファイルであるか、フォルダであるか
if [-f ${path}]; then
echo "${path}はファイルです"
else
echo "${path}はフォルダです"
fi
4、フォルダ下に特定拡張子のファイルを存在しているか
if ls ${path}/*.txt >/dev/null 2>&1
then
echo "exist"
fi
一行内に各場合:
if ls ${path}/*.txt >/dev/null 2>&1; then echo "exist"; fi
if ls ${path}/*.txt >/dev/null 2>&1; then echo "exist"; fi
ファイルやディレクトリの存在を確認する際に使用できる演算子
演算子 | 説明 |
---|---|
-a ファイル | ファイルがあれば真 |
-b ファイル | ファイルがありブロックス特殊ファイルであれば真 |
-c ファイル | ファイルがありキャラクター特殊ファイルであれば真 |
-d ファイル | ファイルがありディレクトリであれば真 |
-e ファイル | ファイルがあれば真 |
-f ファイル | ファイルがあり通常のファイルであれば真 |
-g ファイル | ファイルがありSGID(特殊なアクセス権)であれば真 |
-G ファイル | ファイルがあり実行グループIDによる所有者であれば真 |
-h ファイル | ファイルがありシンボリックであれば真(-Lと同じ) |
-k ファイル | ファイルがありステッキービットが設定されていれば真 |
-L ファイル | ファイルがありシンボリックであれば真(-hと同じ) |
-O ファイル | ファイルがあり実行ユーザIDによる所有者であれば真 |
-p ファイル | ファイルがあり名前付きパイプ(named pipe)であれば真 |
-r ファイル | ファイルがあり読み取り可能であれば真 |
-s ファイル | ファイルがありサイズが0より大きければ真 |
-S ファイル | ファイルがありソケットであれば真 |
-t FD | FD(ファイルディスクリプタ)が端末でオープンされていれば真 |
-u ファイル | ファイルがありSUID(特殊なアクセス権)であれば真 |
-w ファイル | ファイルがあり書き込み可能であれば真 |
-x ファイル | ファイルがあり実行可能であれば真 |
reference:
https://shellscript.sunone.me/if_and_test.html
https://shellscript.sunone.me/if_and_test.html
没有评论:
发表评论