IT!
全部博文(84)
2013年(84)
分类: LINUX
2013-10-05 19:43:06
原文地址:Shell 整数变量和字符变量的比较操作 作者:顽主
在比较操作上,整数变量和字符串变量各不相同,详见下表:
对应的操作 |
整数操作 |
字符串操作 |
相同 |
-eq |
= |
不同 |
-ne |
!= |
大于 |
-gt |
> |
小于 |
-lt |
< |
大于或等于 |
-ge |
|
小于或等于 |
-le |
|
为空 |
|
-z |
不为空 |
|
-n |
比如:
比较字符串 a 和 b 是否相等就写作:if [ $a = $b ]
判断字符串 a 是否为空就写作: if [ -z $a ]
判断整数变量 a 是否大于 b 就写作:if [ $a -gt $b ]
更细致的文档推荐在字符串比较时尽量不要使用 -n ,而用 ! -z 来代替。(其中符号 "!" 表示求反操作)
BASH 中的变量除了用于对 整数 和 字符串 进行操作以外,另一个作用是作为文件变量。BASH 是 Linux 操作系统的 Shell,因此系统的文件必然是 BASH 需要操作的重要对象,如 if [ -x /root ] 可以用于判断 /root 目录是否可以被当前用户进入。下表列出了 BASH 中用于判断文件属性的操作符:
运算符 |
含义( 满足下面要求时返回 TRUE ) |
-e file |
文件 file 已经存在 |
-f file |
文件 file 是普通文件 |
-s file |
文件 file 大小不为零 |
-d file |
文件 file 是一个目录 |
-r file |
文件 file 对当前用户可以读取 |
-w file |
文件 file 对当前用户可以写入 |
-x file |
文件 file 对当前用户可以执行 |
-g file |
文件 file 的 GID 标志被设置 |
-u file |
文件 file 的 UID 标志被设置 |
-O file |
文件 file 是属于当前用户的 |
-G file |
文件 file 的组 ID 和当前用户相同 |
file1 -nt file2 |
文件 file1 比 file2 更新 |
file1 -ot file2 |
文件 file1 比 file2 更老 |