编写一个Shell脚本,从键盘循环输入文件名,输入不存在文件或是目录名则提示重新输入,按“q”或“Q”键退出。程序完成找出输入文件中所有含"YiBin"的行按格式“文件名,含YiBin的行”写入当前目录下文件notefile中。 (须提供程序运行结果截图)
时间: 2024-10-16 16:10:56 浏览: 25
shell中基础脚本
编写这样一个Shell脚本,我们可以使用`while`循环和`grep`命令。首先,我们需要创建一个脚本文件,例如叫`input_notes.sh`:
```bash
#!/bin/bash
# 初始化变量用于存储当前文件名
current_file=""
while true; do
# 循环读取用户输入,直到输入"q"或"Q"
read -p "请输入文件名(或输入'q/Q'退出): " filename
if [[ "$filename" =~ ^[Qq]$ ]]; then
echo "退出..."
break
elif [[ -f "$filename" && ! -d "$filename" ]]; then
current_file="$filename"
# 搜索文件中包含"YiBin"的行
grep -l 'YiBin' "$current_file" | while IFS=',' read -r line;
do
echo "$current_file,$line" >> notefile.txt
done
else
echo "文件$filename不存在或不是一个文件,请重新输入。"
fi
done
echo "已完成搜索并写入notefile.txt."
```
运行这个脚本,你可以依次输入文件名,脚本会检查每个输入是否为文件,如果是,则查找含有"YiBin"的行并将其格式化写入`notefile.txt`。当输入"q"或"Q"时,脚本会退出。
请注意,由于这是一个文字描述,我无法直接提供截图。你可以尝试在本地环境中执行这个脚本查看结果。
阅读全文