shell編程基礎(chǔ) 單引號(hào)和雙引號(hào)的區(qū)別
更新時(shí)間:2008年04月30日 18:51:19 作者:
單引號(hào)和雙引號(hào)都能關(guān)閉shell對(duì)特殊字符的處理。不同的是,雙引號(hào)沒(méi)有單引號(hào)嚴(yán)格,單引號(hào)關(guān)閉所有有特殊作用的字符,而雙引號(hào)只要求shell忽略大多數(shù),具體的說(shuō),就是①美元符號(hào)②反引號(hào)③反斜杠,這3種特殊字符不被忽略。 不忽略美元符號(hào)意味著shell在雙引號(hào)內(nèi)部也進(jìn)行變量名替換。
下面用一個(gè)簡(jiǎn)單的shell程序要說(shuō)明一下。
debian:~/learn/shell# cat phonebook
Alice Chebba 973-555-2015
Barbara Swingle 201-555-9257
Liz Stachiw 212-555-2298
Susan Goldberg 201-555-7776
Susan Topple 212-555-4932
Tony Iannino 973-555-1295
Stromboli Pizza 973-555-9478
debian:~/learn/shell#
debian:~/learn/shell# cat lu
# Look someone up in the phone book
grep "$1" phonebook
debian:~/learn/shell#
這是正確的lu程序,下面是運(yùn)行結(jié)果。
debian:~/learn/shell# ./lu 'Susan T'
Susan Topple 212-555-4932
debian:~/learn/shell# ./lu Tony
Tony Iannino 973-555-1295
debian:~/learn/shell#
如果lu寫(xiě)成①grep $1 phonebook或者②grep '$1' phonebook,就會(huì)出現(xiàn)下面的錯(cuò)誤結(jié)果(為什么?)。
①的結(jié)果:
debian:~/learn/shell# ./lu Tony //這種情況結(jié)果正確
Tony Iannino 973-555-1295
debian:~/learn/shell# ./lu 'Susan T' //這種情況結(jié)果錯(cuò)誤
grep: T: No such file or directory
phonebook:Susan Goldberg 201-555-7776
phonebook:Susan Topple 212-555-4932
debian:~/learn/shell#
②的結(jié)果:
debian:~/learn/shell# ./lu Tony //這種情況結(jié)果錯(cuò)誤
debian:~/learn/shell# ./lu 'Susan T' //這種情況結(jié)果也錯(cuò)誤
debian:~/learn/shell#
debian:~/learn/shell# cat phonebook
Alice Chebba 973-555-2015
Barbara Swingle 201-555-9257
Liz Stachiw 212-555-2298
Susan Goldberg 201-555-7776
Susan Topple 212-555-4932
Tony Iannino 973-555-1295
Stromboli Pizza 973-555-9478
debian:~/learn/shell#
debian:~/learn/shell# cat lu
# Look someone up in the phone book
grep "$1" phonebook
debian:~/learn/shell#
這是正確的lu程序,下面是運(yùn)行結(jié)果。
debian:~/learn/shell# ./lu 'Susan T'
Susan Topple 212-555-4932
debian:~/learn/shell# ./lu Tony
Tony Iannino 973-555-1295
debian:~/learn/shell#
如果lu寫(xiě)成①grep $1 phonebook或者②grep '$1' phonebook,就會(huì)出現(xiàn)下面的錯(cuò)誤結(jié)果(為什么?)。
①的結(jié)果:
debian:~/learn/shell# ./lu Tony //這種情況結(jié)果正確
Tony Iannino 973-555-1295
debian:~/learn/shell# ./lu 'Susan T' //這種情況結(jié)果錯(cuò)誤
grep: T: No such file or directory
phonebook:Susan Goldberg 201-555-7776
phonebook:Susan Topple 212-555-4932
debian:~/learn/shell#
②的結(jié)果:
debian:~/learn/shell# ./lu Tony //這種情況結(jié)果錯(cuò)誤
debian:~/learn/shell# ./lu 'Susan T' //這種情況結(jié)果也錯(cuò)誤
debian:~/learn/shell#
您可能感興趣的文章:
- linux shell 中雙引號(hào)和單引號(hào)的區(qū)別解析
- Shell雙引號(hào)和單引號(hào)有哪些不同
- 每天一個(gè)Linux命令之shell單引號(hào)和雙引號(hào)的經(jīng)典解釋
- PowerShell中字符串使用單引號(hào)和雙引號(hào)的區(qū)別
- Shell腳本字符串單引號(hào)和雙引號(hào)的區(qū)別淺析
- Shell腳本中單引號(hào)(‘)和雙引號(hào)(“)的使用區(qū)別
- linux shell中單引號(hào)、雙引號(hào)、反引號(hào)、反斜杠的區(qū)別
- Bash?Shell中單引號(hào)和雙引號(hào)的區(qū)別小結(jié)
相關(guān)文章
國(guó)產(chǎn)中文操作系統(tǒng)OpenDesktop
國(guó)產(chǎn)中文操作系統(tǒng)OpenDesktop...2006-10-10Linux環(huán)境下的ReiserFS文件系統(tǒng)
Linux環(huán)境下的ReiserFS文件系統(tǒng)...2006-10-10Linux無(wú)盤(pán)工作站架設(shè)實(shí)例
Linux無(wú)盤(pán)工作站架設(shè)實(shí)例...2006-10-10yum安裝openJDK1.8后無(wú)法卸載的快速解決方法
用yum安裝openJDK1.8,安裝后使用yum remove卸載,無(wú)法卸載,使用命令Java -version 還是解決不來(lái),下面小編給大家?guī)?lái)了yum安裝openJDK1.8后無(wú)法卸載的快速解決方法,一起看看吧2017-08-08Linux Crontab 獲取環(huán)境變量配置解析
這篇文章主要介紹了Linux Crontab 獲取環(huán)境變量的配置實(shí)例解析,需要的朋友可以參考下2018-02-02