我在用csh做基本的工作時遇到了麻煩。我有一個字符串:Csh向字符串中添加字符串,空白問題
set newCmd = "$expansionCmd –option1 –option2 …"
而且我創造這些字符串,這是我後來想執行的數組:
set expansionCmdList = ($expansionCmdList[*] "$newCmd")
#I also tried without quotes, e.g. just $newCmd
最後我嘗試遍歷和執行這些命令:
foreach exCmd ($expansionCmdList)
`exCmd` #execute it in the shell
end
但問題是數組條目不是完整的字符串,而是由空格分隔的字符串的每一部分,即第一個條目只是「$ expansionCmd」,下一個條目將b e「-option1」等。
對於使用c shell而言,我的公司的代碼庫已經提前道歉了。
感謝的人......我發誓,我可以找到關於C shell中唯一的文檔人們說不要使用c shell。 – JDS
那麼,不使用csh編寫腳本的唯一重要原因就是csh不是一個非常好的腳本語言......由於事實上你必須將別名扭曲成節以便具有任何類型的子程序能力。但是,如果這就是你所擁有的,那就是你的。在POSIX shell之前,它確實擁有數組和內置算術。 :) –
請注意,使用'$ {array}:q'將不起作用 - 它必須是'$ arr:q'。 –