编写一个Shell脚本,从键盘循环输入文件名,输入不存在文件或是目录名则提示重新输入,按“q”或“Q”键退出。程序完成找出输入文件中所有含"YiBin"的行按格式“文件名,含YiBin的行”写入当前目录下文件notefile中。
时间: 2024-10-16 13:12:08 浏览: 16
这是一个简单的Shell脚本示例,使用while循环来满足需求:
```bash
#!/bin/bash
# 创建一个临时文件记录结果
output_file="notefile.txt"
# 初始化读取状态
continue_reading=true
while [ "$continue_reading" = true ]; do
read -p "请输入文件名 (或输入 'q' 或 'Q' 退出): " filename
if [[ ! -f "$filename" && ! -d "$filename" ]]; then
echo "输入的不是有效文件或目录,请重新输入。"
else
grep -l 'YiBin' "$filename" >> "$output_file"
if [[ $filename == 'q' || $filename == 'Q' ]]; then
continue_reading=false
echo "已退出,结果已保存在$output_file中。"
fi
fi
done
exit 0
```
在这个脚本中,我们首先创建了一个名为`notefile.txt`的文件来存储结果。然后在一个无限循环中,通过`read`命令获取用户输入的文件名,如果输入的是文件或目录,则使用`grep`命令搜索包含"YiBin"的行,并将匹配的结果追加到`output_file`中。当用户输入'q'或'Q'时,我们将`continue_reading`标志设为`false`,结束循环,并提示结果已保存。
阅读全文