【发布时间】:2013-07-23 21:47:18
【问题描述】:
以下工作在 tcsh 中:
set SOMEVAR=(1 2 3 4 5 6 7)
我需要将 SOMEVAR 传播到子进程,但是
truffles:rlaplant[154] setenv SOMEVAR (1 2 3 4 5 6 7)
Badly placed ()'s.
(我必须在 csh 中执行此操作,因为我必须 source 一些非常复杂的脚本的输出,并且将它们全部转换为 Bash 会很费力。)
有没有办法做到这一点?
【问题讨论】:
-
看来区别可能是
set VAR=(...)vs.setenv VAR (...)。我相信这是两种完全不同的说法。文档说set VAR=(...)应该在csh中工作。 -
我承认,我真的不知道 csh,但是 --
set SOMEVAR=(1 2 3 4 5 6 7)不是创建一个数组吗?而且环境变量不是必须是字符串吗? -
@abiessu 是的,它工作得很好,但这并不能解决问题,因为我需要 setenv 将变量导出到子进程的行为。
-
@ruakh -- 啊,是的,可能。但如果是这样的话,csh 是可恶的,因为它允许它们以相同的方式被操纵。
-
@aestrivex 也许您可以在 bash 脚本中使用
csh ./myotherscripts命令运行其他脚本?