- 論壇徽章:
- 0
|
原帖由 ruifox 于 2006-1-20 18:23 發(fā)表 ![]()
非常感謝6樓的指出了我的錯誤!
不過我對單引號和雙引號的用法仍然有點(diǎn)糊涂:
如果說單引號不做處理,為什么用單引號括住的系統(tǒng)變量會取到值abcd,而不是$Flag,我覺得你說的不做處理應(yīng)該是指最外面的一層單 ...
對19條的描述可用6樓的,6樓對第1例解釋確不對.
awk '{print '$Flag'}'
這個例子用法有問題,引號要配對使用,外層用了單引號,內(nèi)層再用就必須用\轉(zhuǎn)義,應(yīng)該更正為:
awk '{print \'$Flag\'}'
或
awk '{print "$Flag"}'
結(jié)果是shell不解釋$Flag,直接傳給awk將$Flag當(dāng)字符串輸出
樓主的例子在你的環(huán)境中輸出abcd,我認(rèn)為是shell將前兩個單引號內(nèi)容取出,加上環(huán)境變量值abcd,再加上后兩個引號之間的內(nèi)容,3個串連起來后傳給awk.剛好第2第3個引號之間沒空格,所以沒報錯. 換了別的shell或別的操作系統(tǒng),結(jié)果可能不同或報錯.
19、在awk中如需調(diào)用環(huán)境變量一定不能出現(xiàn)在單引號內(nèi):
Flag=abcd
awk '{print '$Flag'}' 用法不對,引號不配對,結(jié)果依賴環(huán)境
awk '{print "$Flag"}' 結(jié)果為$Flag
awk "{print '$Flag'}" 結(jié)果為$Flag
awk "{print \"$Flag\"}" 結(jié)果為abcd |
|