$ foo='A="1 2" B=3' sh -c 'ruby -e "p ARGV" $foo'
["A=\"1", "2\"", "B=3"]
我该如何["A=1 2", "B=3"]
取而代之?
我知道:
sh -c 'ruby -e "p ARGV" A="1 2" B=3'
["A=1 2", "B=3"]
但该变量foo
是必需的,因为我真正的问题是在 Jenkins 作业中的“shell 执行过程”中。
编辑:在同一个外壳中使用一个数组
$ foo=(A="1 2" B=3) && ruby -e "p ARGV" $foo
["A=1 2", "B=3"]
但是,数组不能作为环境变量传播...
$ foo=(A="1 2" B=3) sh -c 'ruby -e "p ARGV" $foo'
[]