萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> Shell編程基礎:單引號和雙引號含義區別

Shell編程基礎:單引號和雙引號含義區別

class="20976"> ; 單引號和雙引號都能關閉shell對特殊字符的處理。不同的是,雙引號沒有單引號嚴格,單引號關閉所有有特殊作用的字符,而雙引號只要求shell忽略大多數,具體的說,就是①美元符號②反引號③反斜槓,這3種特殊字符不被忽略。 不忽略美元符號意味著shell在雙引號內部也進行變量名替換。 下面用一個簡單的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程序,下面是運行結果。 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寫成①grep $1 phonebook或者②grep '$1' phonebook,就會出現下面的錯誤結果(為什麼?)。 ①的結果: debian:~/learn/shell# ./lu Tony //這種情況結果正確 Tony Iannino 973-555-1295 debian:~/learn/shell# ./lu 'Susan T' //這種情況結果錯誤 grep: T: No such file or directory phonebook:Susan Goldberg 201-555-7776 phonebook:Susan Topple 212-555-4932 debian:~/learn/shell# ②的結果: debian:~/learn/shell# ./lu Tony //這種情況結果錯誤 debian:~/learn/shell# ./lu 'Susan T' //這種情況結果也錯誤 debian:~/learn/shell#

copyright © 萬盛學電腦網 all rights reserved