当我将带有参数的变量传递给外部ruby脚本时,我在shell脚本中看到了奇怪的行为 例如:
params="--val1=test --val2='test'"
ruby ./script.rb
使ruby为var2而不是'test'
输出test
。
如果我不使用变量就直接传递参数,则一切正常。
答案 0 :(得分:0)
能否请您澄清一下您的问题?
据我了解,您有一个shell脚本,例如:
#!/bin/bash
PARAMS="--val1=test --val2='test'"
ruby ./script.rb $PARAMS
然后在script.rb
中打印出命令行参数val2
的值。在这种情况下,由于正在执行以下步骤,因此预期它会打印出test
而不是'test'
,
bash
用其值替换$PARAMS
bash
尝试执行行ruby ./script.rb --val1=test --val2='test'
bash
看到引用的值'test'
并将其替换为test
,因此ruby
/您的脚本将看到test