服务器在线 - 服务器软件 - 网站地图 服务器在线,专注于服务器技术!

当前位置:主页 > 编程脚本 > Shell > 正文

条件表达式

时间:2016-07-02    来源:未知    投稿:admin    点击:

条件表达式,一般通过2种方式:

一种是使用test命令进行判断

另外一种就是 [   ]命令

 

1、文件测试

文件测试是指根据给定的路径名称,判断是文件还是目录,判断是具有读写执行的权限,判断文件目录是否存在

常用的选项如下

 -d:测试是否为目录(Directory)或目录是否存在

-e:测试目录或文件是否存在(Exist)

-f:测试是否为文件(File)或文件是否存在

-r:测试当前用户是否有权限读取(Read)

-w:测试当前用户是否有权限写入(Write)

-x:测试当前用户是否有权限执行(eXcute)

其中-e选项是判断的是文件还是目录,这个选项不是很常用,

因为当你要判断文件的时候正好你指定的目录里面有一个和你要判断的文件重名的子目录,这样也会返回0的所以不是很常用.

 

如果判断目录或文件是否存在只需要使用-d 或-f 来判断就可以了

后面的三个测试权限的选项就是测试指定的文件或目录是否有读写执行的权限

执行测试条件之后通过预定义变量$?可以测试命令的返回状态,从而判断是否存存在

 

例:输出0,说明文件或目录存在。

test -f /root/first.sh 

echo $?

0

test -d /root/shell/

echo $?

0

[ -d /root/shell/ ]

echo $?

0

[ -f /root/first.sh ]

echo $?

0
 
test -d /root/shell/ && echo "目录存在,太好了"
 
[ -d /root/shell/ ] && echo "目录存在,太好了"
 

如果您的问题仍未解决,还可以加入服务器在线技术交流QQ群:8017413寻求帮助。