はじめに
Unix 系システムの Bash 環境で、ファイルが存在するかどうかを確認する必要があることがよくあります。需要があるので、もちろん解決策はあります。シェルの test コマンドを使用して、ファイルの種類を検出したり、値が等しいかどうかを確認したりすることもできます。存在します。
次のコマンドを使用して確認できます:
test -e filename [ -e filename ] test -f filename [ -f filename ]
次のコマンドはシェルの条件式を使用して /etc/hosts ファイルが存在するかどうかを判断します:
[ -f /etc/hosts ] && echo "Found" || echo "Not found"
この組み合わせたコマンドは次を出力します。内容:
Found
より一般的な使い方は、if..else..fi 条件判定の条件式にテストコマンドを配置し、その中に別の分岐ロジックを記述することです
#!/bin/bash file="/etc/hosts" if [ -f "$file" ] then echo "$file found." else echo "$file not found." fi
関連ファイル属性を検出するための演算子
ファイルが存在し、対応する属性がある場合、次の演算子は true を返します:
-b FILE FILE exists and is block special -c FILE FILE exists and is character special -d FILE FILE exists and is a directory -e FILE FILE exists -f FILE FILE exists and is a regular file -g FILE FILE exists and is set-group-ID -G FILE FILE exists and is owned by the effective group ID -h FILE FILE exists and is a symbolic link (same as -L) -k FILE FILE exists and has its sticky bit set -L FILE FILE exists and is a symbolic link (same as -h) -O FILE FILE exists and is owned by the effective user ID -p FILE FILE exists and is a named pipe -r FILE FILE exists and read permission is granted -s FILE FILE exists and has a size greater than zero -S FILE FILE exists and is a socket -t FD file descriptor FD is opened on a terminal -u FILE FILE exists and its set-user-ID bit is set -w FILE FILE exists and write permission is granted -x FILE FILE exists and execute (or search) permission is granted
上記のコマンドは man test からコピーされます。
上記の記号の使い方は全く同じです:
if [ operator FileName ] then echo "FileName - Found, take some action here" else echo "FileName - Not found, take some action here" fi
概要
以上がこの記事の内容の全てです この記事の内容が皆様の勉強や仕事に少しでもお役に立てれば幸いです。ご質問がある場合は、メッセージを残して連絡してください。
Bash Shell を使用してファイルが存在するかどうかを確認する方法に関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。