shell中的特殊字元
;分隔符號,用來表示一行執行多條命令
echo hello; echo there
if [ -f "$file" ]; then
cd "$file"
fi;;
case 的選項終止符
ex:case "$var" in
1) echo "1=$var" ;;
2) echo "2=$var" ;;
esac
.1)相當於source命令
2)檔名第乙個字元,變檔案可見為隱藏
3)做目錄時,表示當前目錄
ex:cd .
4)在正規表示式中,匹配單個字元
"部分引用."string"阻止了一部分特殊字元
'全引用. 'string' 阻止了全部特殊字元
,在算數運算中和c語言的逗號作用相似
ex:let "t2=((a=4, 5/3))" #t2=5/3
/1)轉義字元,相當於''或""
2)用來表示一行還沒有結束
/1)路徑分隔符或除法運算子
2)在sed中用來表示乙個單詞的結束
`後置引用。由於命令替換
:1)與true命令相同,表示什麼都不幹
ex1:
if [***]
then : #什麼都不作,為了引出下面的分支
else
echo "test :"
fiex2:
while : #相當於while true
doecho "test :"
done
2)作為/etc/passwd和$path字元間的分隔符
!取反操作符
^1)sed,grep中表示行首
sed -e '/^$/ d' filename #刪除空白行
2)在正規表示式中表示取反
grep '^[^ad]' filename #輸出行首不是字母a或者d開頭的行
*1)檔名或正規表示式中(但這兩者卻是不同的)的萬能匹配符
2)數學乘法
**乘法密運算
?1)在正規表示式中表示單個字元的匹配
$1)變數替換
ex:var=8
echo $var #8
2)正規表示式中的行結束符
sed -e '/^$/d' filename #刪除檔案中的空被行
${}引數替換,見9.3節.
$()用來進行命令的執行,相當於``
$*,$@
所有的位置引數,被作為乙個單詞.
注意:"$*"和"$@"必須被""引用.
$#表示引數的個數,注意引數的個數不包含命令本身在內
test.sh a b c
echo "$#" #輸出的結果是3
$?退出狀態變數.$?儲存乙個命令/乙個函式或者指令碼本身的退出狀態.
$$程序id變數.這個$$變數儲存執行指令碼程序id
()1)命令組 ex: (echo "1"; echo "2" )
2)陣列初始化 ex: array=(1,2,3,4)
說明:它的命令會在子shell中執行,所以其內部的變數對於外面是不可見的
{}1)**塊
cp file22.
# 拷貝"file22.txt" 到"file22.backup"中
5)變數內部替換
ex:a=1122
b=$ #b=gg22
1)用於test的表示式中 if [ -x "$file" ]; then **** fi;
2)陣列元素 array[1]=1; echo $
3)正規表示式時的匹配字元的乙個範圍:
(())
一般是用於數學計算
可以進行算數運算並返回乙個邏輯的值
與函式的{}不同的是,該括號裡宣告的變數對於外部**來說還是可見的。
2)**塊的操作
ex: > "$test"
3){} /;
find 的命令的後來的部分。注意";"是find 命令的結束。
4)大括號擴充套件,如:
cat > combined_file
# 把file1,file2,file3連線在一起,並且重定向到combined_file中.
SHELL特殊字元
字元含義 1 通常用於注釋,通常 前後留乙個空格 2 某些模式匹配如sed,數值常量表示式 及引數替換 中也使用 命令分割符,允許單行寫多個的命令,例 echo var1 echo var2 case 的選項結尾符 1 等同與source命令,載入指令碼檔案,可理解為python的import 2 ...
shell特殊字元
這篇博文記錄平時工作,shell中讓人犯迷糊的特殊字元。shell中特殊字元挺多,不適合花太多精力去蒐集 整理,我的想法是遇到了便總結下來,寫到這篇文件中,慢慢積累。百分號在計算公式裡可以取餘,這個就不說了。這裡記錄的是,可以按照模板對原字串進行擷取。舉例如下 root timmy scripts ...
Shell命令特殊字元
shell命令特殊字元 注釋 後台執行 把執行結果輸入到乙個指定的檔案中 把執行結果附加到乙個以存在的檔案後面 表示當前目錄 表示上一級目錄 最後一次執行的命令的返回碼 shell程序自己的pid shell程序最近啟動的後台程序的pid 命令列引數的個數 0 指令碼檔案本身的名字 1 2 第乙個,...