Bash错误的空格,引用变量中的解释

时间:2018-10-25 08:15:11

标签: linux bash

当我将带有参数的变量传递给外部ruby脚本时,我在shell脚本中看到了奇怪的行为 例如:

params="--val1=test --val2='test'"
ruby ./script.rb

使ruby为var2而不是'test'输出test

如果我不使用变量就直接传递参数,则一切正常。

1 个答案:

答案 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