编写一个Shell脚本,要求输入任意一个目录名和目录下的一个文件名,如果输入正确结果显示这个文件有多少行,如果输入错误根据实际输出错误提示(显示目录名错误或者文件名错误),用test1目录下的filel文件进行验证。
时间: 2024-11-05 13:32:00 浏览: 3
在Shell脚本中,我们可以结合`cd`, `ls`, 和 `wc -l` 命令来实现这个功能。下面是一个示例脚本:
```bash
#!/bin/bash
# 获取用户输入的目录名和文件名
read -p "请输入目录路径 (如test1): " dir_path
read -p "请输入文件名: " file_name
# 检查目录是否存在
if [ ! -d "$dir_path" ]; then
echo "错误:目录 $dir_path 不存在"
else
# 检查文件是否在该目录下
if [ ! -f "$dir_path/$file_name" ]; then
echo "错误:文件 $file_name 在 $dir_path 目录下不存在"
else
# 如果文件存在,计算其行数
line_count=$(wc -l "$dir_path/$file_name")
if [ $? -eq 0 ]; then
echo "文件 $file_name 的行数是: $line_count"
else
echo "无法计算文件行数,可能是权限问题或其他错误"
fi
fi
fi
```
在这个脚本中,我们首先获取用户的输入,然后检查输入的目录是否存在并且文件是否在此目录内。如果是,则尝试计算文件的行数,如果不是则给出相应的错误提示。
你可以将此脚本保存为`check_file.sh`,然后按照之前提到的方法使其可执行,然后运行`./check_file.sh`,并按照提示输入测试1目录下的file1文件的信息。
阅读全文