2

我编写了一个 bash 函数来导出环境变量。第一个函数参数是变量名,第二个是变量值。我希望echo它显示导出的值:

#!/bin/bash

env_var_export()
{
    export $1=$2

echo ""
echo "  export $1=$$1"
echo ""
}

env_var_export var defaultVal456

我的意思是, echo 应该打印:export var=defaultVal456。有什么帮助吗?我知道我可以这样做:

echo ""
echo "  export $1=$2"
echo ""

但它不是我的问题的解决方案。

4

1 回答 1

3

$$是一个扩展为 shell 的 pid 的特殊变量,这就是将在您的echo. 您应该改为使用这样的间接引用:

echo ""
echo "  export $1=${!1}"
echo ""

此语法将获取名为 in 的变量$1,然后根据该名称查找值(即间接)。

于 2013-04-05T15:02:06.620 回答