脚本中特殊字符
1. #
注釋作用, #! 除外
此外, 在參數(shù)替換 echo ${PATH#*:} 這里不表示注釋, 數(shù)制轉換, 不表示注釋 echo $((2#101011))
2. ;
命令行分隔符, 可以在一行中寫多個命令. echo hello; echo there
3. ;;
終止 case 選項
case “$variable” in
abc) echo “\$variable = abc”;;
xyz) echo “\$variable = xyz”;;
esac
4. .
隱藏文件前綴
.命令等價于source
. 表示當前目錄 .. 表示上一級目錄
正則表達式中作為單個字符匹配
5. “”, ‘'
雙引號, 單引號, 其中雙引號中可以引用變量, 而單引號中不行, 它們的作用是組織特殊字符
6. \
轉義字符
7. /
文件名分隔符, 除法操作
?
8. ` (Esc 下邊的按鈕)
后置引用, 命令替換
9. :
空命令, 等價于 “NOP”
也可被認為是 shell 內(nèi)建命令 true 作用相同, 例如: 死循環(huán)
while :
do
? echo ”1”
done
等價于:
復制代碼代碼如下:
while true
do
? echo “1”
done
在 if/then 語句中做占位符:
復制代碼代碼如下:
if condition
then :? # 什么都不做, 引出分支
else
? do other thing
fi
在一個 2 元命令中提供一個占位符.
在和 >(重定向操作符)一起使用時, 清空文件, 并沒有修改文件的權限, 例如: (如果文件不存在, 將會創(chuàng)建文件)
: > data.log 等同于
cat /dev/null > data.log
10. !
取反操作符 != 不等于
11. *
萬能匹配符, 正則表達式中
數(shù)學乘法
** 冪運算
12. ?
測試操作
正則表達式中, ? 匹配任意單個字符
13. $
變量符號
正則表達式中 行結束符
${} 參數(shù)替換
$*,$@ 位置參數(shù)
$? 退出狀態(tài)
$$ 進程ID
14. ()
命令組, (a=hello; echo $a), 在 () 中的命令列表將作為一個子 shell 來運行. 在() 中的變量, 由于在子shell中, 所以對于腳本剩下的部分是不可用的.
數(shù)組初始化: array=(element1, element2, element3)
15. {xxx,yyy,zzz}
大括號擴展
cat {file1,file2,file3} > combined_file, 將file1,file2,file3合并在一起并重定向到commbined_file中. 大括號中不能有空格
16. {}
代碼塊. 事實上, 這個結構創(chuàng)建了一個匿名的函數(shù). 但是與函數(shù)不同的是, 在其中聲明的變量, 對于腳本的其他部分的代碼來說還是可見的.
?? 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
數(shù)組元素, 例如 array[1]=abc
字符范圍, 在正則表達式中使用
19. [[]]
test 表達式本身放在[] 里
?
20. (())
數(shù)學計算擴展
21. >& >>& >> <
重定向
scriptname > filename 重定向腳本的輸出到文件中, 覆蓋原有內(nèi)容
command &> filename 重定向 stdout 和 stderr 到文件中
command >&2 重定向 stdout 和 stderr
scriptname >> filename 重定向腳本輸出到文件中, 添加到文件尾端, 如果沒有文件, 則創(chuàng)建這個文件.
22. << <<<
重定向, << 用在“here document”, <<< 用在“here string”
23. \<, \>
正則表達式中的單詞邊界 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 循環(huán)的最后一個 done&
28. &&
邏輯與
來源:?http://www.jb51.net/article/49176.htm
來自為知筆記(Wiz)
轉載于:https://www.cnblogs.com/tangbinghaochi/p/6296455.html
總結
- 上一篇: java web 页面提速
- 下一篇: Ubuntu14-04安装redis和p