shell test命令的用法,包括判断表达式、判断字符串、判断整数、判断文件等选项或参数的用法,一起来学习下。 1)判断表达式 if test (表达式为真) if test !表达式为假 test 表达式1 –a 表达式2 两个表达式都为真 test 表达式1 –o 表达式2两个表达式有一个为真 2)判断字符串 test –n 字符串 字符串的长度非零 test –z 字符串 字符串的长度为零 test 字符串1=字符串2 字符串相等 test 字符串1!=字符串2 字符串不等 3)判断整数 test 整数1 –eq 整数2 整数相等 test 整数1 –ge 整数2 整数1大于等于整数2 test 整数1 –gt 整数2 整数1大于整数2 test 整数1 –le 整数2 整数1小于等于整数2 test 整数1 –lt 整数2 整数1小于整数2 test 整数1 –ne 整数2 整数1不等于整数2 4)判断文件 test File1 –ef File2 两个文件具有同样的设备号和i结点号 test File1 –nt File2 文件1比文件2 新 test File1 –ot File2 文件1比文件2 旧 test –b File文件存在并且是块设备文件 test –c File文件存在并且是字符设备文件 test –d File文件存在并且是目录 test –e File文件存在 test –f File 文件存在并且是正规文件 test –g File文件存在并且是设置了组ID test –G File文件存在并且属于有效组ID test –h File文件存在并且是一个符号链接(同-L) test –k File文件存在并且设置了sticky位 test –b File文件存在并且是块设备文件 test –L File文件存在并且是一个符号链接(同-h) test –o File文件存在并且属于有效用户ID test –p File文件存在并且是一个命名管道 test –r File 文件存在并且可读 test –s File文件
例子(shell if语句): 复制代码 代码示例:#!/bin/bash
TESTCHARS=2
if [ "$#" -eq 1 -a -d "$1" ]
for file in $(ls $PATHNAME)
注意,shell条件判断时,有时需要进行不仅一个条件的判断,也就是所谓的多条件判断,这时需要进行-a 和 -o了。
基本格式: 注意:在使用"["简写test时,左中括号后面的空格和右括号前面的空格是必需的,如果没有空格,Shell不可能辨别表达式何时开始何时结束.
即:
例如:
改写成
例子:
复制代码 代码示例://判断第一个参数是否为空字符串,不空则打印
复制代码 代码示例:#!/bin/sh
复制代码 代码示例:chmod +x test.sh |