已关闭,此问题需要更focused。目前不接受答复。
**想改善这个问题吗?**更新问题,使其仅通过editing this post关注一个问题。
昨天关门了。
Improve this question
我被要求编写一个脚本,它接收一个路径作为参数,并打印以该路径为根的目录中的文件总数。我不得不遵循给定的条件:
1.如果没有为脚本提供参数或提供了多个参数-退出,状态码为1
1.如果单个参数不包含指向可读目录或文件的路径-退出,状态码为2
1.如果给定的路径是一个可读的文件(不是目录),脚本应该打印1。
1.如果路径是一个可读目录,那么numoffiles =该目录中可读文件的数量+任何可读子目录(递归)
1.我必须使用num-files.sh,它是一个脚本,它访问一个名为dir的bash变量,该变量保存一个目录的路径,并打印该目录中所有用户都具有读访问权的文件数量,还必须使用bash脚本list-dirs.sh,它将目录路径作为输入参数,并打印该目录中所有用户都具有读访问权的子目录列表
#!/bin/bash
if [ $# -ne 1 ]; then
echo "Usage: $0 <path>"
exit 1
fi
if [ ! -e $1 ]; then
echo "No such path $1"
exit 2
fi
# Check if the path is a readable regular file
if [ -f "$path" ] && [ -r "$path" ]; then
echo 1
exit 0
fi
dir="$1"
# Using the Script list-dirs will get the list of directories
dirList=`./list-dirs.sh $dir`
# create counter
count=`source num-files.sh`
# Iterate over the directories and recursively count the number of readable files
for file in $dirList; do
# Call the script recursively if the directory is readable
if [ -d file ]; then
subcount=`source ./ count-files.sh file`
count=$((count + subcount))
fi
done
# Get the number of readable files in the current directory using num-files.sh
echo $count
exit 0
该脚本通常工作,并实际打印一些东西,但它不计数的文件数正确的一些原因,我不明白为什么
1条答案
按热度按时间jqjz2hbq1#
这是上述脚本的替代方案