取路径的目录名:dirname取路径的文件名:basename
示例:
[root@Server3 Learn]# basename /etc/passwdpasswd[root@Server3 Learn]# dirname /etc/passwd/etc[root@Server3 Learn]#
字符串测试
==:判断两个字符串是否相等。等号两端需要有空格。字符串可以用引号,也可以不用引号。!=:判断两个字符串是否不相等。>:判断字符串1是否大于字符串2。<:判断字符串1是否小于字符串2。-n "string":判断一个字符串是否为非空。非空为真,空为假。-z "string":判断一个字符串是否为空。空为真,非空为假。
示例1:
[root@Server3 Learn]# A=Hello[root@Server3 Learn]# B=Hi[root@Server3 Learn]# [ $A == $B ][root@Server3 Learn]# echo $?1[root@Server3 Learn]# [[ $A == $B ]][root@Server3 Learn]# echo $?1[root@Server3 Learn]# test $A == $B[root@Server3 Learn]# echo $?1[root@Server3 Learn]#
示例2:
[root@Server3 Learn]# echo $AHello[root@Server3 Learn]# echo $BHi[root@Server3 Learn]# [ "$A" != "$B" ][root@Server3 Learn]# echo $?0[root@Server3 Learn]#
示例3:
[root@Server3 ~]# [ -n "$A" ][root@Server3 ~]# echo $?1[root@Server3 ~]# [ -z "$A" ][root@Server3 ~]# echo $?0[root@Server3 ~]# echo $A[root@Server3 ~]#
命令行中直接调用bc进行数值计算
示例:
方法1:
[root@Server3 ~]# echo "scale=2;100/3;" | bc33.33[root@Server3 ~]#
方法2:
[root@Server3 ~]# bc <<< "scale=3;100/3;"33.333[root@Server3 ~]#
说明:
如果if判断中想要使用正则表达式,需要将中括号改为`expression`这种方式。
如:
if [[ $1 == ^[0-9]+$ ]];then echo "$1 is int"fi