1. 程式人生 > 實用技巧 >4, shell 第四部分

4, shell 第四部分

[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 ~]#