6、if 判断文件、目录属性
[ -f file ]判断是否是普通文件,且存在
[ -d file ] 判断是否是目录,且存在
[ -e file ] 判断文件或目录是否存在
[ -r file ] 判断文件是否可读
[ -w file ] 判断文件是否可写
[ -x file ] 判断文件是否可执行
实验练习:
1.sh存在的话执行后面的
[root@localhost shell]# [ -f 1.sh ] && echo "1.sh exist"
1.sh exist
21.sh不存在执行后面的。
12 [root@localhost shell]# [ -f 21.sh ] || echo "1.sh not exist"
1.sh not exist
判断文件是否存在
[root@localhost shell]# cat test.sh
#!/bin/bash
#判断1.sh是否存在;
if [ -e 1.sh ]
then
echo "1.sh exist"
else
echo "1.sh not exist"
fi
[root@localhost shell]# sh test.sh
1.sh exist
exec的用法,结合date变量实验
exec命令用于调用并执行指令的命令。exec命令通常用在shell脚本程序中,可以调用其他的命令。如果在当前终端中使用命令,则当指定的命令执行完毕后会立即退出终端。
[root@localhost shell]# cat date.sh
#!/bin/bash
#exec的用法,结合date变量实验;
d=`date +%F`
exec >/tmp/$d.log 2>&1
echo "Begin at `date`"
ls /tmp/abc
cd /ddd
echo "End at `date`"
[root@localhost shell]# sh date.sh
[root@localhost shell]# cat /tmp/2015-06-16.log
Begin at 2015年 06月 16日 星期二 16:49:54 CST
ls: 无法访问/tmp/abc: 没有那个文件或目录
date.sh: line 7: cd: /ddd: 没有那个文件或目录
End at 2015年 06月 16日 星期二 16:49:54 CST
exec >/tmp/$d.log 2>&1 表示执行下面的行,输出正确或错误的信息都写到/tmp/目录下 日期.log里面;