2012-05-30 51 views
2

以下:如何在korn shell中轉義逗號?

#!/bin/sh 

FOX="{ab,cd}" 
echo $FOX 

輸出什麼,我期望({AB,CD}),但:

#!/bin/ksh 

FOX="{ab,cd}" 
echo $FOX 

變成逗號進入的空間。爲什麼是這樣?我似乎也無法用'\'來避開逗號。

+2

在'echo「$ FOX」'上使用dbl引號。祝你好運。 – shellter

回答

4

當您評估$FOX時,您會得到大括號擴展。

從KSH手冊頁:

對於形式{*,*}

對之間{和,,之間,與,,之間,以及}每個字符串創建一個字段。

因此,shell使用逗號分隔的列表並展開它,以便可以使用它,例如在for循環中。

由於shellter在評論中建議,只要評估它就可以通過雙引號"$FOX"來解決。

相關問題