Để sử dụng tệp cấu hình cho tập lệnh này, điều đó có nghĩa là tập lệnh sẽ phải đọc một số tham số từ tệp cấu hình.
Tập tin cấu hình
config.txt:
con đường =.
tiện ích mở rộng = sh
modtime=1
tên tệp = kiểm tra
Tập kịch bản:
#!/bin/bash
lines=$(<config.txt)
cho dòng trong $lines; làm
nếu [[ $line = *"="* ]]; sau đó
vars[${line%%=*}]=${line#*=}
fi
xong
find ${vars[path]} -mtime ${vars[modtime]} -type f "(" -name "*.${vars[extension]}" -or -name "${vars[filename]}.* " ")"
Giải pháp khác là sử dụng tập lệnh có đối số và chỉ định đường dẫn, phần mở rộng, thời gian sửa đổi hoặc tên tệp như sau:
#!/bin/bash
Cứu giúp()
{
tiếng vang ""
echo "Cách sử dụng: $0 -p Đường dẫn -e tệpPhần mở rộng -m sửa đổiThời gian -f tên tệp"
echo -e "\t-path Đường dẫn tìm kiếm"
echo -e "\t-ext phần mở rộng tên tập tin"
echo -e "\t-modtime thời gian sửa đổi, ví dụ: +1d"
echo -e "\t-filename tên tệp"
thoát 1
}
trong khi getopts "p:e:m:f:" opt
làm
trường hợp "$opt" trong
p ) pathFile="$OPTARG" ;;
e) tiện ích mở rộng="$OPTARG" ;;
m ) modTime="$OPTARG" ;;
f ) fileName="$OPTARG" ;;
? ) Cứu giúp ;;
thoát hiểm
xong
nếu [ -z "$pathFile" ] || [ -z "$extension" ] || [ -z "$modifyTime" ] || [ -z "$fileName" ]
sau đó
echo "(Các) tham số trống, vui lòng kiểm tra chúng...";
Cứu giúp
fi
tìm $pathFile -mtime $modifyTime -type f "(" -name "*.$extension" -or -name "$fileName.*" ")"