linux下利用test命令的判断文件属性的功能编写一个shell脚本 210

内容:用户输入当前目录下的一个文件,备份这个文件,然后调用vi编辑器编辑该文件。注意:1.判断用户是否输入文件名,如果用户没有输入文件名,给予提示。2.判断输入的文件名对... 内容:用户输入当前目录下的一个文件,备份这个文件,然后调用vi编辑器编辑该文件。
注意:1.判断用户是否输入文件名,如果用户没有输入文件名,给予提示。2.判断输入的文件名对应的文件是否存在。3.该文件是否有读写权限
(涉及到的知识点有点多,比如test,循环,case等。有点复杂,感谢回答!)
展开
 我来答
yexicheng
2016-06-27 · TA获得超过1.2万个赞
知道大有可为答主
回答量:8857
采纳率:69%
帮助的人:7082万
展开全部
对于文件是否有读写权限,这个没有涉及
#!/bin/bash
read -p "please input the file name:" file
if [ ! -n "$file" ];
then
echo please input the file name please
exit 0
fi
ls $file > /dev/null 2>&1
if [ $? -eq 0 ]
then
echo file exist
cp $file $file.bak
vi $file
else
echo file not exist!
fi
追问
你好,可否再补充一下呢关于权限的呢 。   
我记得ll -l 文件名,可以查看相关权限,能否提取出来匹配“r”“w"再给予echo提示呢。
劳烦了,谢谢
另外能否用test命令完善下,感谢...
追答
那就加一个简单的判断
#!/bin/bash
read -p "please input the file name:" file
if [ ! -n "$file" ];
then
echo please input the file name please
exit 0
fi
ls $file > /dev/null 2>&1
if [ $? -eq 0 ]
then
echo file exist
ls -l $file | awk '{print $1}' |grep rw > /dev/null 2>&1
if [ $? -eq 0 ]
then
echo file has read/write right
cp $file $file.bak
vi $file
else
echo file donot have read/write right
fi
else
echo file not exist!
fi
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Roylicc
2016-06-27
知道答主
回答量:7
采纳率:0%
帮助的人:7734
展开全部
#!/bin/bash
#
backupdir="/tmp"
while true;do
read -p "Input a file.[{q or quit}exit]:" file
case $file in
q|quit)
exit 0
;;
*)
test -z "$file" && echo "Parameter is not allowed to be empty." && continue
test ! -e "$file" && echo "$file is not exist." && continue
test -d "$file" && echo "Can not vi $file." && continue
test ! -r $file && echo "Can't read $file." && continue
test -r "$file" -a ! -d "$file" && cp -af "$file" $backupdir/`basename $file`.backup && vi $file
;;
esac
done
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式