[root@node1 ~]# cat a.sh
#! /bin/bash
read -p "please input:" a b
expr $a + $b
[root@node1 ~]# sh a.sh
please input:a b
expr: 非整数参数
[root@node1 ~]#
[root@node1 ~]# cat a.sh
#! /bin/bash
read -p "please input:" a b
expr $a + $b &>/dev/null
[root@node1 ~]# sh a.sh
please input:a b
[root@node1 ~]#
条件测试语法:
格式1: test 测试表达式
格式2: [ 测试表达式 ]
格式3: [[ 测试表达式 ]]
Test 用法:
[root@node1 ~]# ll
总用量 8
-rw-------. 1 root root 1256 5月 6 2018 anaconda-ks.cfg
-rwxrwxrwx. 1 root root 68 11月 22 22:45 a.sh
[root@node1 ~]#
[root@node1 ~]#
[root@node1 ~]# test -f a.sh && echo 1 || echo 0
1
[root@node1 ~]# test ! -f a.sh && echo 1 || echo 0
0
[root@node1 ~]# arg=
[root@node1 ~]# test -n "$arg" &&echo 1 ||echo 0
0
[root@node1 ~]# test ! -n "$arg" && echo 1 || ech0 0
1
[root@node1 ~]#
单中括号用法:
[root@node1 ~]# ll
总用量 8
-rw-------. 1 root root 1256 5月 6 2018 anaconda-ks.cfg
-rwxrwxrwx. 1 root root 68 11月 22 22:45 a.sh
[root@node1 ~]# [ -f a.sh ] && echo 1 || echo 0
1
[root@node1 ~]# [ ! -f a.sh ] && echo 1 || echo 0
0
[root@node1 ~]#
[root@node1 ~]# ll
总用量 8
-rw-------. 1 root root 1256 5月 6 2018 anaconda-ks.cfg
-rwxrwxrwx. 1 root root 68 11月 22 22:45 a.sh
[root@node1 ~]# [ -f a.sh ] || echo 1 // ||代表不成立才执行
[root@node1 ~]# rm -f a.sh
[root@node1 ~]# [ -f a.sh ] || echo 1
1
[root@node1 ~]#
双中括号用法:
[root@node1 ~]# [ -f file && -d root ] && echo 1 || echo 0
-bash: [: 缺少 `]‘
0
[root@node1 ~]# [[ -f file && -d root ]] && echo 1 || echo 0
0
[root@node1 ~]#
针对文件的比较测试:
针对字符串的比较测试:
[root@node1 ~]# test="oldboy"
[root@node1 ~]# [ "$test" = "oldboy" ] &&echo 1||echo 0
1
[root@node1 ~]#
[root@node1 ~]# test="ww.baidu.com.#*"
[root@node1 ~]# test2="ww.baidu.com.#*"
[root@node1 ~]#
[root@node1 ~]# [ "$test" = "$test2" ] &&echo 1||echo 0
1
[root@node1 ~]# [ "${test}" = "${test2}" ] &&echo 1||echo 0
1
[root@node1 ~]#