编写一个Shell脚本,根据键盘可以循环输入文件名,输入不存在文件或是目录名则提示后重新输入,按“q”或“Q”键退出。程序完成找出输入文件中所有含"YiBin"的行按格式“文件名,含YiBin的行”写入当前目录下文件notefile中。
while :
do
read -p "input(q/Q退出 ):" file
if [[ $file = "q" || $file = "Q" ]] #判断q/Q,退出循环
then
exit
fi
find $file 1>/etc/null 2>&1 #保证代码运行界面简洁,将输出结果丢到黑洞文件
if [ $? = 1 ] #判断最后一次命令的执行状态
then
echo "File is not here"
continue
else
echo "file is here"
cat $file | grep "[Y]i[B]in" 1>/etc/null 2>&1 #查找是否有YiBin
if [ $? = 1 ]
then
echo "No YiBin in it"
continue
else
for yb in `cat $file|grep "[Y]i[B]in"` #循环读取符合要求的行
{
echo $file $yb >> notefile #重定向到notefile文件
}
echo "Finish write in notefile"
break
fi
fi
done
```![在这里插入图片描述](/i/ll/?i=63c1afcf50a1435c89639fb480f54cef.png![在这里插入图片描述](/i/ll/?i=4ce0e1dc762849d1a0e031eceb46b008.png)
标签:文件,YiBin,notefile,作业,echo,file,linux,fi
From: https://blog.51cto.com/u_16058292/6191150