目标:在bash中从一个文件中读取文件名称,并查看当前目录下的所有文件,若不存在则返回提醒
实现:check_file.sh

#!/bin/bash# 获取以后门路CRTDIR=$(pwd)i=0# 从保留了文件名称的txt文件中获取文件名,并生成数组for line in $(cat filelist.txt)do  file_list[$i]=${line%%[[:cntrl:]]}  ((i++))done# 查看数组中的文件是否存在于当前目录及所有的子目录下for FILE in "${file_list[@]}"do  file_count=$(find $CRTDIR -name $FILE | wc -l)  if [[ $file_count -eq 0 ]]  then    echo "Warning: $FILE not found in $CRTDIR!"  fidone

应用:

  • 将check_file.sh与filelist.txt两个文件放到须要查看的目录下
  • Windows零碎下,能够用Git Bash,先转到该目录
  • 输出./check_file.sh, 运行脚本

例子:

# file.txt1.pdf2.cad3.txt4.exe
// 目录构造BashTest├─ 1│  └─ 3.txt├─ check_file.sh└─ filelist.txt
$ ./check_file.shWarning: 1.pdf not found in /g/BashTest!Warning: 2.cad not found in /g/BashTest!Warning: 4.exe not found in /g/BashTest!
人能常清静,天地悉皆归