shell程式設計 之 引號 括號的用法總結

2022-02-08 02:58:24 字數 1935 閱讀 6034

1 單引號

a=1b='a string'

單引號遮蔽各種特殊字元。echo 『$a " % \n ' 只能得到 $a " % \n

單引號可以指明界限,防止由分隔符----空格引起的歧義。$b不能寫成b=a string,會報錯。

2 雙引號  

a=1基本和單引號一樣,但是雙引號支援內部字元有特殊含義,比如換行,變數,傳遞的引數等。echo 「$a /" //  \\ " 輸出 1 」 / \。

3 反引號

a=" hello linux !"

反引號內部先運算,然後把結果傳遞給反引號外邊的引數,相當於$()。echo ` expr 2 + 2 ` 返回4 

支援常用的命令操作,echo ` ls `  

4 方括號

a=1方括號內部支援數字加減乘除運算:echo $[2 + 2],echo $[2 * 2] (不用轉義)

可以用於指定邊界防止歧義。  echo $[a] 返回1

可以用於字串運算子:  =  是否相等;!=是否不相等;-z字串長度是否為0;-n字串長度是否不為0;str字串是否不為空? 

a='abc'

b='abc'

if [ $a = $b ]

then

echo "no e"

fi

對變數和值進行條件判斷,和test作用一樣,但是不和test一起用,可以結合,-lt,-gt,-ge,-le,-a, -o ...[ $var1 -ne 0 -a $var2 -gt 2 ]變數1不等於0而且變數2大於2。如果用判斷語句&& 和 ||,充當if後的條件語句的時候,外邊還要疊套一層方括號:if[[ $a != 1 && $a != 2 ]] 或者

if[ $a -ne1] && [ $a != 2 ]

檔案系統測試,和test作用一樣,但是不一塊用。[ -f daqing ] ,檔案daqing存在,且為普通檔案,

在陣列中的下標需要用方括號表明,a = (1 2 3) ,echo $ 返回1.

5 圓括號

陣列需要用圓括號括起來,a = (1 2 3) 。

命令組,小括號裡可以放好幾個命令,彼此之間用分號隔開,注意:括號中的命令將會新開乙個子shell順序執行,所以括號中的變數不能夠被指令碼餘下的部分使用

astr='hehehehe'

bstr='hahahaha'

if test [ $astr = $bstr ]

then

( echo "astr !=bstr";echo "hehe" ) #返回結果的第一行是astr != bstr,第二行是hehe

fi

圓括號也可以用於計算:$((exp))和`expr ...`是一樣的,echo $(( 2 + 2 )) 返回4.

括號裡的命令之間也可以有規則,這樣的用法常常充當迭代的時候的條件語句,比如可以直接使用for((i=0;i<5;i++)),

#!/bin/bash

for((i=0;i<=5;i++))

do echo $i

done #返回0 1 2 3 4 5

6 大括號    

命令組。 在當前shell順序執行命令cmd1,cmd2,cmd3, 各命令之間用分號隔開,最後乙個命令也必須帶分號。

**塊,用於區分程式的邊界或者防止變數名引起歧義。變數的值應當是$,不引起歧義的情況下可以去掉大括號,再者,用大括號表明邊界和格式,

demofun()

demofun

大括號有一種特殊用法,相當於從1到10,touch .txt 結果為a.txt b.txt c.txt d.txt。大括號中沒有空格。

shell 引號 括號 用法詳解

1 單引號 雙引號 反引號區別 單引號 雙引號用於當變數出現空格時,用引號括起來,加以區分 單雙引號的區別 單引號括起來的所有字元都是普通字元,就算是特殊字元也等同為普通字元 雙引號中的 以及反引號都是有特殊含義的,表示引用變數的值,反引號表示引用命令 反引號 命令 和 命令 的的作用是一樣的,呼叫...

bash 一 shell中括號,引號的用法

bash中if的幾種用法 if command then command fitest for number and strings if test expression then command fior if string numeric expression then command fite...

shell程式設計中,單引號,雙引號,各種括號的區別

一 單引號和雙引號 首先,單引號和雙引號,都是為了解決中間有空格的問題。因為空格在linux中時作為乙個很典型的分隔符,比如string1 this is astring,這樣執行就會報錯。為了避免這個問題,因此就產生了單引號和雙引號。他們的區別在於,單引號將剝奪其中的所有字元的特殊含義,而雙引號中...