我在用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'。 –