我在c-shell
set value_str ="one three"
set line_seprator = ","
set value_and_sperator = "$value_str$line_seprator"
setenv STRING_CONCAT $STRING_CONCAT$value_and_sperator我犯了错误:
setenv: Too many arguments.这就是我在脚本中设置全局变量的方式,知道为什么我会得到错误吗?
发布于 2014-07-01 10:06:35
只需要将字符串用引号括起来-否则csh被分隔符弄糊涂了。
setenv STRING_CONCAT "$STRING_CONCAT$value_and_sperator"发布于 2019-05-17 17:39:24
可以设置以空格分隔的列表。
setenv value_str "val1 val2"然后在剧本里
set varxyz= ( ${value_str} )
set xyzList = "$varxyz"
foreach val ( $xyzList )
echo "val: $val"
end发布于 2020-04-29 11:39:01
我认为大多数setenv问题的出现是因为人们不理解env变量是标量变量,也就是说,您可以循环使用由
set a = (1 2 3) 这在env变量中是不可能的。之后
setenv A "1 2" 命令
echo $A[1]不输出$A的预期第一个组件,即1,而是写入
1 2[1]若要通过env变量A和其元素上的循环将向量传递给脚本,可以使用
set a = ($A)
foreach i ($a) ...https://stackoverflow.com/questions/24507402
复制相似问题