这是较大脚本的一小部分,但它没有显示正确的结果。我希望它检查文件夹,如果该文件夹存在,则检查其中的文件数。如果为空则退出(继续使用更大的脚本)。或者它应该是一个大功能? 脚本:
#!/bin/bash
BU_DIR=~/Backups
function Func_CountFiles() {
FILES=$(find ${BU_DIR} -type f | wc -l )
# echo $BU_FILES
}
### Get files from Backupfolder
#
if [ ! -d "${BU_DIR}" ]; then
BU_Status="Directory, ($BU_DIR), not found!"
else
Files=$(Func_CountFiles)
if [ $Files -le "0" ]; then
FU_Status="Current dir, ($BU_DIR), is empty."
else
# Files=$(Func_CountFiles)
BU_Status="Current dir, ($BU_DIR), contains $Files."
fi
fi
exit 0
答案 0 :(得分:2)
这个想法是正确的,但你并没有向调用函数返回任何东西。您需要通过打印变量值FILES
来返回值。只有这样,调用函数中的变量Files
才会使用您在Func_CountFiles()
中确定的计数进行更新。做
function Func_CountFiles() {
fileCount=$(find ${BU_DIR} -type f | wc -l )
printf "%d" "$fileCount"
}
并将被调用函数的值捕获为
declare -i file_count_from_function
file_count_from_function=$(Func_CountFiles)
printf "%d\n" "$file_count_from_function"
并且因为您使用bash
使用自己的算术运算符((..))
进行数值计算。您可以像在C编程中一样使用变量进行算术计算。
if (( file_count_from_function <= 0 )); then