编写shell脚本,定义一个函数,功能是统计用户输入目录中共有多少个文件,其中普通文件多少个。
时间: 2024-12-04 10:26:09 浏览: 17
在编写Shell脚本来统计用户输入目录中的文件数量以及普通文件的数量,你可以创建一个名为`count_files`的函数,如下所示:
```bash
#!/bin/bash
# 定义count_files函数
function count_files() {
local dir="$1" # 接收用户输入的目录路径作为参数
if [ ! -d "$dir" ]; then
echo "Error: $dir is not a valid directory."
return 1
fi
total_files=$(find "$dir" -type f | wc -l) # 使用find命令查找目录下的所有文件,并计数
file_count=$(find "$dir" -type f -not -path '*/\.*' | wc -l) # 筛选出非隐藏普通文件并计数
echo "Total files in $dir: $total_files"
echo "Normal files (excluding hidden ones): $file_count"
}
# 调用函数,让用户输入目录
read -p "Enter the directory path to count files: " input_dir
count_files "$input_dir"
```
在这个脚本中,我们首先定义了一个函数`count_files`,它接收一个参数`dir`。然后,我们检查这个路径是否是一个有效的目录。接着,使用`find`命令加上 `-type f` 来查找所有文件,`wc -l` 计算总数。为了排除隐藏文件,我们在第二次`find`命令中添加了条件 `-not -path '*/\.*'`。
最后,通过`read`命令提示用户输入目录,将该目录传递给我们的函数,并输出结果。
阅读全文