1. 單引號 ( '' ) # grep Susan phonebook Susan Goldberg 403-212-4921 Susan Topple 212-234-2343 如果我們想查找的是Susan Goldberg,不能直接使用grep Susan Goldberg phonebook命令,grep會把Goldberg和phonebook當作需要搜索的文件 # grep 'Susan Gold' phonebook Susan Goldberg 403-212-4921 當shell碰到第一個單引號時,它忽略掉其后直到右引號的所有特殊字符 2. 雙引號 ( " " ) 雙引號作用與單引號類似,區別在于它沒有那么嚴格。單引號告訴shell忽略所有特殊字符,而雙引號只要求忽略大多數,具體說,括在雙引號中的三種特殊字符不被忽略:$,\,` ,即雙引號會解釋字符串的特別意思,而單引號直接使用字符串.如果使用雙引號將字符串賦給變量并反饋它,實際上與直接反饋變量并無差別。如果要查詢包含空格的字符串,經常會用到雙引號。 # x=* # echo $x hello.sh menus.sh misc.sh phonebook tshift.sh # echo '$x' $x # echo "$x" * 這個例子可以看出無引號、單引號和雙引號之間的區別。在最后一種情況中,雙引號告訴shell在引號內照樣進行變量名替換,所以shell把$x替換為*,因為雙引號中不做文件名替換,所以就把*作為要顯示的值傳遞給echo。 對于第一種情況需要進一步說明,shell在給變量賦值時不進行文件名替換(這從第三種情況中也能看出來),各步驟發生的精確次序如下: shell掃描命令行,把x的值設為星號*; shell再次掃描命令行,碰到星號*,把它替換成當前目錄下的文件清單; shell啟動執行echo命令,把文件清單作為參數傳遞給echo. 這個賦值的先后次序非常重要:shell先作變量替換,然后作文件名替換,最后把這行處理為參數 3. 反引號(``) 命令替換是指shell能夠將一個命令的標準輸出插在一個命令行中任何位置。shell中有兩種方法作命令替換:把shell命令用反引號或者$(...)結構括起來,其中,$(...)格式受到POSIX標準支持,也利于嵌套。 # echo The date and time is `date` The date and time is 三 6月 15 06:10:35 CST 2005 # echo Your current working directory is $(pwd) Your current working directory is /home/howard/script 4. 反斜杠 backslash-escaped( \ ) 反斜杠一般用作轉義字符,或稱逃脫字符,linux如果echo要讓轉義字符發生作用,就要使用-e選項,且轉義字符要使用雙引號 echo -e "\n" 反斜杠的另一種作用,就是當反斜杠用于一行的最后一個字符時,shell把行尾的反斜杠作為續行,這種結構在分幾行輸入長命令時經常使用。 |
免責聲明:本站部分文章和圖片均來自用戶投稿和網絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業用途,如果損害了您的權利,請聯系我們及時修正或刪除。謝謝!
始終以前瞻性的眼光聚焦站長、創業、互聯網等領域,為您提供最新最全的互聯網資訊,幫助站長轉型升級,為互聯網創業者提供更加優質的創業信息和品牌營銷服務,與站長一起進步!讓互聯網創業者不再孤獨!
掃一掃,關注站長網微信