2
#!/bin/sh
FOX="{ab,cd}"
echo $FOX
輸出什麼,我期望({AB,CD}),但:
#!/bin/ksh
FOX="{ab,cd}"
echo $FOX
變成逗號進入的空間。爲什麼是這樣?我似乎也無法用'\'來避開逗號。
#!/bin/sh
FOX="{ab,cd}"
echo $FOX
輸出什麼,我期望({AB,CD}),但:
#!/bin/ksh
FOX="{ab,cd}"
echo $FOX
變成逗號進入的空間。爲什麼是這樣?我似乎也無法用'\'來避開逗號。
當您評估$FOX
時,您會得到大括號擴展。
從KSH手冊頁:
對於形式{*,*}
:
對之間{和,,之間,與,,之間,以及}每個字符串創建一個字段。
因此,shell使用逗號分隔的列表並展開它,以便可以使用它,例如在for循環中。
由於shellter在評論中建議,只要評估它就可以通過雙引號"$FOX"
來解決。
在'echo「$ FOX」'上使用dbl引號。祝你好運。 – shellter