[A-00051]Shellでファイル存在チェック
シェルスクリプトを利用してファイルの存在チェックを行う方法を記載する。
#!/bin/bash
if [[ -e test.txt ]];
then
  echo "test.txt is exist."
else
  echo "test.txt is not exist."
fiカレントディレクトリは下記のとおり。test.txtは存在しないので偽の判定結果となる。
anonymous-MacBook-Pro:test$ ls
callFunc.sh		sjis.csv		test4.sh
date.txt		test.csv		test5.sh
date.txt.bak		test.sh			unitseparator.csv
echeck.sh		test2.sh		unitseparator.txt
func.sh			test3.sh		utf.csv
sample.csv		test4.loganonymous-MacBook-Pro:test$ . echeck.sh 
test.txt is not exist.ファイルリストから該当するファイルが存在するかチェックする
応用として例えばテキストファイルに記載されるファイルが存在するかどうかをチェックするプログラムを記載しておく。
ファイルリストは下記のとおり
callFunc.sh
date.txt
func.sh
lsif.txt      #存在しない
notex.csv     #存在しない
sjis.csv
anonymous.log #存在しない
test4.logwhileループで上記のファイルから一行づつ読み込んでそのファイルが存在するかをチェックする。
#!/bin/bash
while read file
do
if [[ -e $file ]];
then
  echo "$file is exist."
else
  echo "$file is not exist."
fi
done < ./files.list存在しないファイルはnot existとなり、想定どおりの結果となった。
anonymous-MacBook-Pro:test$ ./echeck.sh 
callFunc.sh is exist.
date.txt is exist.
func.sh is exist.
lsif.txt is not exist.
notex.csv is not exist.
sjis.csv is exist.
anonymous.log is not exist.
test4.log is exist.
コメントを残す