前言
眾所周知shell既是類Unix操作系統(tǒng)的命令解析器,用于解釋執(zhí)行用戶輸入的一連串命令,它類似于DOS下的command和后來Windows的cmd.exe。同時shell也是一種程序設計語言。作為命令解釋型的腳本語言,它交互式解釋和執(zhí)行用戶輸入的命令或者自動地解釋和執(zhí)行預先設定好的一連串的命令;作為程序設計語言,它預定義了各種環(huán)境變量,保留了一些關(guān)鍵字以及一些特殊字符的含義,并提供了許多在高級語言中才具有的控制結(jié)構(gòu),包括循環(huán)和分支判斷。
本文將給大家介紹關(guān)于Shell特殊字符用法的相關(guān)內(nèi)容,話不多說,來一起看看詳細的介紹:
1、;分號
連續(xù)運行命令
2、| 管道
正則表達式中表示或者
# echo "ooooee" |egrep '(oo|ee)'{2} 表示匹配 oooo 或者 eeee 的字符
前面命令的標準輸出作為后面命令的標準輸入
# ifconfig|grep eth0 表示ifconfig查出來的信息然后過濾出eth0的這一行
3、
將命令放到后臺執(zhí)行
# mysqld_safe --user=mysql 將MySQL放到后臺啟動
表示標準輸出和標準錯誤輸出
# ifconfig >/dev/null 將ifconfig執(zhí)行得到的結(jié)果輸出到/dev/null里面
4、
前面命令返回值為0才執(zhí)行后面的命令
5、||
前面命令返回值為非0才執(zhí)行后面的命令
6、# 井號
# 表示注釋
$# 表示位置參數(shù)的個數(shù)
${#變量名} 表示變量的長度
# a='hello'
# echo ${#a}
5
${#變量名[@]} 表示數(shù)組的個數(shù)
# a=(1 2 3)
# echo ${#a[@]}
3
7、!驚嘆號
將命令或者條件表達式的返回值取反
# if ! [ 12 ]; then echo 'ok'; else echo 'no'; fi
ok
執(zhí)行歷史命令
# history
1 ls
2 tail test1.txt
3 mysql -uroot -p123
4 ls /tmp/
5 cd /tmp/
[root@localhost ~]# !994
ls /tmp/
account.sql data.sql mysql.sock t1.txt t2.txt
vi或者ftp中執(zhí)行外部shell命令
例如:在vim中,想要執(zhí)行一條命令,就在末行模式,輸入!感嘆號后面加上要執(zhí)行的命令
間接應用變量
例如:${!a}
---- 間接取b 的值
8、$ 美元符號
取變量的值
正則表達式表示行尾
egrep ':$' /etc/inittab
egrep ‘^hello$' file
9、> 大于號
輸出重定向
echo '123' >test.txt 表示將123 輸入到文件test.txt中 條件測試中的大于號
11、 小于號
輸入重定向
條件測試中的小于號
= 等號
變量賦值 - 例如:設置變量a=10
條件測試中的等號 - 例如:[ a=b ] 判斷變量a是否等于b
數(shù)值比較 == - 例如:(( a==20 )) 判斷變量a是否等于20
12、+ 加號
算術(shù)運算中的加號 - 例如:1+3
正則表達式中1個或多個前面的字符 - 例如:ab+c 表示匹配ab和c之間有1個或者多個 字符
13、>>
輸出重定向追加 - 例如:echo "123" >> test.txt
將123追加到文件test.txt中
14、
here document
例如:
# passwd end
> 123
> 123
> end
更改用戶 root 的密碼 。
15、- 減號
算術(shù)運算中的減號 - 例如:10-2
命令的選項 - 例如:ls -l
上一次工作目錄 - 例如:cd -
通配符和正則表達式中表示范圍 - 例如:[a-z]
tar -cvf - /home | tar -xvf -
表示輸出流或輸入流
將前面的輸出 ,通過管道交給后面的命令,前面的壓縮,后面的解壓
16、'' 單引號
解決變量賦值空格的問題
例如:a='1 2'
阻止shell替換
17、"" 雙引號
解決變量賦值空格的問題
例如:a="1 2"
阻止shell部分字符替換,對$、!等無效
18、`` 反引號 相當于 $()
命令行替換
例如:可以設變量a=`ls`
19、% 百分號
算術(shù)運算中的模運算
例如:echo $((100%10))
就是100除以10的余數(shù)為0
vi中替換操作中表示所有行 (末行模式下,替換所有前面加 %)
例如:在末行模式下輸入 :% s/D/d 表示將文本中的所有的D替換為d
20、() 單圓括號
子shell中執(zhí)行命令,會繼承父shell的變量
括起數(shù)組元素
例如:定義一個數(shù)組 a=(1 2 3 4)
21、(()) 雙圓括號
算術(shù)運算
例如: echo $((10/2))
結(jié)果就是5
整數(shù)比較測試
例如: (( 10>2 ))
判斷10是否大于2
22、[] 單方括號
通配符和正則中表示匹配括號中的任意一個字符
例如: [abc]
表示匹配abc中的任意一個字符
條件測試表達式
例如: [ -f /etc/passwd ]
// 測試是不是文件
數(shù)組中下標括號
例如:echo ${a[0]}
表示取數(shù)組中下標為0的值
23、[[]] 雙方括號
字符串比較測試
例如: [[a=b]]
用來字符串的比較
24、. 英文句點號
正則中表示任意1個字符
例如:a...b
表示 匹配 a和b之間夾三個字符的字符串
當前shell執(zhí)行腳本命令
例如: ./test.sh
執(zhí)行當前路徑下的shell腳本test.sh
表示當前目錄
例如:cd ./bgk
進入當前目錄下的bgk目錄下
25、{} 大括號
通配符擴展 abc{1,2,3}
正則表達式中表示范圍
例如:a{3} 匹配3個 a
for i in {1...10}
循環(huán)指定范圍
匿名函數(shù){ cmd1;cmd2;cmd3;} > /dev/null
{ } 里面的命令,是在當前shell執(zhí)行
注意: { } 第一條命令前面要有空格,后面的命令要有分號
括起變量名 ${abc}a
26、/ 正斜杠
算術(shù)運算中的除法
例如:echo $((10/2))
結(jié)果就是5
根目錄或路徑分割符
例如:cd /usr/local/
表示路徑
27、^
在通配符中表示取反
例如:[^abc] 表示匹配除了abc外的任意一個字符
在正則表達式中表示以什么開頭
例如:
總結(jié)
好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
您可能感興趣的文章:- shell腳本中28個特殊字符的作用簡明總結(jié)
- Shell命令行中特殊字符與其轉(zhuǎn)義詳解(去除特殊含義)
- Shell腳本中的特殊字符(美元符、反斜杠、引號等)作用介紹
- Shell腳本中的位置變量參數(shù)(特殊字符)實例講解
- Linux Shell中的特殊符號和含義簡明總結(jié)(包含了絕大部份)
- shell腳本中常見的一些特殊符號和作用詳解
- linux shell中的比較符號與特殊符號介紹
- shell中冒號的特殊用法分享
- shell腳本中一些特殊符號