-nt: (newer than)判断 file1 是否比 file2 新
-ot: (older than)判断 file1 是否比 file2 旧
-ef:判断 file1 与 file2 是否为同一文件,可用在判断 hard link 的判定上。 主要意义在判定,两个文件是否均指向同一个 inode 哩!
4. 关于两个整数之间的判定,例如 test n1 -eq n2
-eq :两数相等 (equal)
-ne :两数不等 (not equal)
-gt :n1 大于 n2 (greater than)
-lt: n1 小于 n2 (less than)
-ge: n1 大于等于 n2 (greater than or equal)
-le :n1 小于等于 n2 (less than or equal)
5. 判定字符串的数据
test -z string :判定字符串是否为 0 ?若 string 为空字符串,则为 true
test -n string:判定字符串是否非为 0 ?若 string 为空字符串,则为 false。注: -n 亦可省略
test str1 == str2: 判定 str1 是否等于 str2 ,若相等,则回传 true
test str1 != str2: 判定 str1 是否不等于 str2 ,若相等,则回传 false
6. 多重条件判定,例如: test -r filename -a -x filename
-a:(and)两状况同时成立!例如 test -r file -a -x file,则 file 同时具有 r 与 x 权限时,才回传 true。
-o:(or)两状况任何一个成立!例如 test -r file -o -x file,则 file 具有 r 或 x 权限时,就可回传 true。
! :反相状态,如 test ! -x file ,当 file 不具有 x 时,回传 true
13.3.2 利用判断符号[ ]
中括号的使用方法与 test 几乎一模一样啊~ 只是中括号比较常用在条件判断式 if ..... then ..... fi 的情况中,
举例来说,如果我想要知道 ${HOME} 这个变量是否为空的,可以这样做:
> [ - - z "${HOME}" ] ; echo $?
注意:
在中括号 [] 内的每个组件都需要有空键来分隔;
在中括号内的变数,最好都以双引号括号起来;
在中括号内的常数,最好都以单或双引号括号起来。
13.3.3 shell script的默认变量($0 $1.....)
>/path/to/scriptname opt1 opt2 opt3 opt4
$0 $1 $2 $3 $4
执行的脚本档名为 $0 这个变量,第一个接的参数就是 $1
除了这些数字的变量之外,我们还有一些较为特殊的变量可以在 script 内使用:
$# :代表后接的参数『个数』,以上表为例这里显示为『 4 』;
$@ :代表『 "$1" "$2" "$3" "$4" 』之意,每个变量是独立的(用双引号括起来);
$* :代表『 "$1c$2c$3c$4" 』,其中 c 为分隔字符,默认为空键, 所以本例中代表『 "$1 $2 $3 $4" 』之意。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-58905-3.html
好自为之
如果不理睬
什么也不要说了
有实力很重要