Tcsh
在 tcsh 中,如何在分配變數時保留 ‘{’ ‘}’?
我正在使用 shell 製作一個簡單的 shell 腳本
tcsh
。我分配了一個變數作為稍後使用的命令。但是單引號內的括號消失了。set aaa = "test '10' '{}' ' " ; echo $aaa
結果顯示
test '10' '' '
為什麼會這樣?如果我單獨使用
{}
和''
,沒關係。set aaa = "test '10' {} '' ' " ; echo $aaa test '10' {} '' '
我認為這與 csh 在參數擴展後進行大括號擴展有關。它確實
{}
單獨離開,但似乎{}
從 eg中刪除了foo{}
。(我不知道為什麼它不只是把它變成空字元串,即使大括號之間基本上有一個空列表。我認為在其他 shell 中{}
或{foo}
裡面只有一個項目不會觸發大括號擴展。)引用擴展以避免這種情況。
> set a = 'foo{a,b}' > echo $a fooa foob > set b = '{}' > echo $b {} > set c = 'foo{}' > echo $c foo > echo "$c" foo{}
還有你的特殊情況:
> set aaa = "test '10' '{}' ' " > echo "$aaa" test '10' '{}' '