我在使用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”,下一个条目将是“—option1”等。
提前为使用c shell道歉,我的公司代码库被困在其中。
${array}:q
是无效的,正确的写法应该是$arr:q
。 - Sean Allred${array}:q
专门使用花括号来防止修饰符的应用,并在结果中获得字面上的:q
。如果您想使用花括号并仍然应用修饰符,则为${array:q}
。 - Mark Reed