shell指令碼中28個特殊字元的作用簡明總結_linux shell

來源:互聯網
上載者:User

1. #

注釋作用, #! 除外
此外, 在參數替換 echo ${PATH#*:} 這裡不表示注釋, 數制轉換, 不表示注釋 echo $((2#101011))

2. ;

命令列分隔字元, 可以在一行中寫多個命令. echo hello; echo there

3. ;;

終止 case 選項

複製代碼 代碼如下:

case “$variable” in
abc) echo “\$variable = abc”;;
xyz) echo “\$variable = xyz”;;
esac


4. .
隱藏檔案首碼
.命令等價於source
. 表示目前的目錄 .. 表示上一級目錄
Regex中作為單個字元匹配

5. “”, ‘'

雙引號, 單引號, 其中雙引號中可以引用變數, 而單引號中不行, 它們的作用是組織特殊字元

6. \

逸出字元

7. /

檔案名稱分隔字元, 除法操作
 

8. ` (Esc 下邊的按鈕)

後置引用, 命令替換

9. :

空命令, 等價於 “NOP”
也可被認為是 shell 內建命令 true 作用相同, 例如: 死迴圈

複製代碼 代碼如下:

while :
do
  echo ”1”
done

等價於:
複製代碼 代碼如下:

while true
do
  echo “1”
done

在 if/then 語句中做預留位置:
複製代碼 代碼如下:

if condition

then :  # 什麼都不做, 引出分支

else

  do other thing

fi

在一個 2 元命令中提供一個預留位置.

在和 >(重新導向操作符)一起使用時, 清空檔案, 並沒有修改檔案的許可權, 例如: (如果檔案不存在, 將會建立檔案)

: > data.log 等同於

cat /dev/null > data.log


10. !

取反操作符 != 不等於

11. *

萬能匹配符, Regex中
數學乘法
** 冪運算

12. ?

測試操作
Regex中, ? 匹配任意單個字元

13. $

變數符號
Regex中 行結束符
${} 參數替換
$*,$@ 位置參數
$? 退出狀態
$$ 進程ID

14. ()

命令組, (a=hello; echo $a), 在 () 中的命令列表將作為一個子 shell 來運行. 在() 中的變數, 由於在子shell中, 所以對於指令碼剩下的部分是停用.
數組初始化: array=(element1, element2, element3)

15. {xxx,yyy,zzz}

大括弧擴充
cat {file1,file2,file3} > combined_file, 將file1,file2,file3合并在一起並重新導向到commbined_file中. 大括弧中不能有空格

16. {}

代碼塊. 事實上, 這個結構建立了一個匿名的函數. 但是與函數不同的是, 在其中聲明的變數, 對於指令碼的其他部分的代碼來說還是可見的.

複製代碼 代碼如下:
# 代碼塊中的內容, 外部存取, I/O重新導向

   1:  #!/bin/bash
   2:  
   3:  File=/etc/fstab
   4:  
   5:  # 在這個代碼塊中的變數, 外部也可以訪問
   6:  {
   7:  read line1
   8:  read line2
   9:  } < $File
  10:  
  11:  echo "First line in $File is"
  12:  echo "$line1"
  13:  echo
  14:  echo "Second line in $File is"
  15:  echo "$line2"
  16:  
  17:  exit 0
# 將一個代碼塊的結果儲存到檔案


 

17. {}\;

路徑名, 一般都是在 find 命令中使用, 注意; 用來結束find 命令序列的 –exec

18. []

test

數組元素, 例如 array[1]=abc
字元範圍, 在Regex中使用

19. [[]]

test 運算式本身放在[] 裡
 

20. (())

數學計算擴充

21. >& >>& >> <

重新導向
scriptname > filename 重新導向指令碼的輸出到檔案中, 覆蓋原有內容
command &> filename 重新導向 stdout 和 stderr 到檔案中
command >&2 重新導向 stdout 和 stderr
scriptname >> filename 重新導向指令碼輸出到檔案中, 添加到檔案尾端, 如果沒有檔案, 則建立這個檔案.

22. << <<<

重新導向, << 用在“here document”, <<< 用在“here string”


23. \<, \>

Regex中的單詞邊界 grep ‘\<the\>' testfile

24. |

管道, 分析前邊命令的輸出, 並將輸出作為後邊命令的輸入


25. >|

強制重新導向

26.  ||

邏輯或

27. &

後台運行命令, 一個命令後邊跟一個&, 將表示在後台運行

複製代碼 代碼如下:

   1:  #!/bin/bash
   2:  
   3:  for i in 1 2 3 4 5 6 7 8 9 10
   4:  do
   5:      echo -n "$i"
   6:  done&

注意, for 迴圈的最後一個 done&

28. &&

邏輯與

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.