歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> SHELL編程

Linux shell特殊字符詳解

()  : 創建成組的命令

1)  一組由圓括號括起來的命令是新開一個子shell來執行的

因為是在子shell裡執行,在圓括號裡的變量不能被腳本的其他部分訪問。因為父進程(即腳本進程)不能存取子進程(即子shell)創建的變量。

            (a=hello; echo $a)2)  數組初始化.

Array=(element1 element2 element3) (( )) : 擴展並計算(( ))裡的整數表達式, 不能用來做浮點計算.     {} : 創建命令塊

1)  這個結構也是一組命令代碼塊,事實上,它是匿名的函數。然而與一個函數所不同的,在代碼塊裡的變量仍然能被腳本後面的代碼訪問。

2)  不像一個用圓括號括起來的命令組,一個用花括號括起的代碼塊不會以一個子shell運行。

“”: 部分引用——可以解釋引號中的變量

    ‘’: 完全引用——引號內所有的內容都是常量

   : :空操作——什麼都不做。一般用在腳本中。

1)  在必須要有兩元操作的地方作為一個分隔符

: ${username=`whoami`}

# ${username=`whoami`}   如果沒有開頭的:,將會出錯,除非"username"是一個外部命令或是內建命令.

2)  在參數替換中為字符串變量賦值

: ${HOSTNAME?} ${USER?} ${MAIL?}#  如果列出的一個或多個基本的環境變量沒有設置,將打印出錯信息。      ? : 在參數替換表達式裡,測試一個變量是否被設置了值.

 [] : 測試在[ ]中的表達式.

數組元素——在數組的上下文中,方括號表示數組的每個元素的數字編號.

[[]] : 測試在[[]]中的表達式.

1)  在[[和]]之間的所有的字符都不會被文件擴展或是標記分割,但是會有參數引用和命令替換。

2)  用[[ ... ]]測試結構比用[ ... ]更能防止腳本裡的許多邏輯錯誤。比如說,&&,||,<和>操作符能在一個[[]]測試裡通過,但在[]結構會發生錯誤。

<< :在here document中使用的重定向.  

<<<:在here string中使用的重定向.

      -:

1) 用於stdin或stdout重定向的源或目的

 (cd /source/directory && tar cf - . ) | (cd /dest/directory && tar xpvf -)

Copyright © Linux教程網 All Rights Reserved