小智 10
比当前提供的解决方案更简单的解决方案涉及使用内置替换修改器 - 在此实例中没有必要或理由浪费地使用循环或外部命令替换:
set list = one,two,three
set split = ($list:as/,/ /)
echo $split[2] # returns two
Run Code Online (Sandbox Code Playgroud)
()创建一个列表,:s是替换修饰符,并且:根据需要重复多次.
此外,t/csh不需要引用裸字符串,也不需要强制评估的变量.
例如:
set s = "one,two,three"
set words = `echo $s:q | sed 's/,/ /g'`
foreach word ($words:q)
echo $word:q
end
Run Code Online (Sandbox Code Playgroud)
但请考虑csh是否适合您正在做的任何工作:
http://www.bmsc.washington.edu/people/merritt/text/cshbad.txt