有没有办法在 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
。
参数中需要单引号,如果需要双引号,则必须转义(反斜杠)美元符号,否则变量将在字符串传递给函数之前扩展。