4, shell 第四部分
阿新 • • 發佈:2020-08-21
[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 ~]#