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
没有评论:
发表评论