はじめに
Linuxの勉強をしていて、ファイルに関する条件式についていろいろと調べたのでその備忘録を。
主な使い方
- ファイルが存在するか
- ファイルが実行可能か
- ファイルが読み取り可能か
を評価してシェルスクリプトを実行したいときに使います。
回答
ファイルに関する主な条件式とその意味について、そして名前の由来についてお答えします。
シェルスクリプトにおけるファイルの条件式は、主に以下のものがあります¹²³:
-
-e ファイル名
: ファイルが存在する場合に真を返します。 -
-f ファイル名
: ファイルが存在し、通常のファイルである場合に真を返します。 -
-d ディレクトリ名
: ディレクトリが存在し、通常のディレクトリである場合に真を返します。 -
-r ファイル名
: ファイルが存在し、読み取り可能である場合に真を返します。 -
-w ファイル名
: ファイルが存在し、書き込み可能である場合に真を返します。 -
-x ファイル名
: ファイルが存在し、実行可能である場合に真を返します。
これらの条件式は、if文やwhile文などの制御構文で使用されます。例えば、以下のようなコードでファイルが存在するかどうかを判定することができます:
if [ -e /path/to/file ]; then
echo "ファイルが存在します"
else
echo "ファイルが存在しません"
fi
シェルスクリプトという名前は、コマンドラインインターフェース(CLI)の「シェル」という機能と、それを記述するための「スクリプト」というプログラム言語から来ています⁴。
実行例としては、以下のようなコードでファイルが存在するかどうかを判定することができます:
#!/bin/bash
if [ -e /path/to/file ]; then
echo "ファイルが存在します"
else
echo "ファイルが存在しません"
fi
参考文献
(1) もうシェルスクリプトでIFの書き方を迷わないための逆引き .... https://qiita.com/tomoyk/items/aaa6bf2ddf9b884cb50d.
(2) 【シェルスクリプト】ファイルが存在するかで処理を場合分け .... https://sugublog.org/shell-script-file-exist/.
(3) シェルスクリプトのif文の基本構文と条件分岐オプションの書き .... https://libproc.com/shellscript-ifelse-options/.
(4) シェルスクリプトの入門編7:if文について | Shiro's secret base. https://shiro-secret-base.com/%e3%82%b7%e3%82%a7%e3%83%ab%e3%82%b9%e3%82%af%e3%83%aa%e3%83%97%e3%83%88%e3%81%ae%e5%85%a5%e9%96%80%e7%b7%a8%ef%bc%97%ef%bc%9aif%e6%96%87%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/.
おわりに
最後まで読んでいただきありがとうございます。
またお会い出来たら幸いです。