在 eval Bash 中声明变量

在 eval Bash 中声明变量

有没有办法在 eval 中声明变量?例如

function test
{
   eval $1
}

 test "
       value="foo"
       echo "$value"
       "

但它什么也没显示。有人可以帮忙吗?

答案1

双引号不能嵌套。

用于set -xv查看 shell 实际运行的内容。

固定代码:

#!/bin/bash

function Test() {
   eval "$1"
}

Test 'value=foo
      echo $value'

请注意,参数 toeval是用双引号引起来的。您可以不带引号使用它,但是您需要在 之前插入分号echo

参数中需要单引号,如果需要双引号,则必须转义(反斜杠)美元符号,否则变量将在字符串传递给函数之前扩展。

相关内容