正在导出具有特定日志的变量



问题

可以通过以下命令在KSH中导出变量:

export EXAMPLE1="A"
export EXAMPLE2="B"
export EXAMPLE3="C"

然而,我想echo用户,变量已经被重新定义:

echo ${!EXAMPLE1@}" -> "$EXAMPLE1
echo ${!EXAMPLE2@}" -> "$EXAMPLE2
echo ${!EXAMPLE3@}" -> "$EXAMPLE3

目的是在一行代码中执行这两个操作,因为我有几个环境变量要分配。

我所做的

为了回答这个问题,我制作了一个define函数,它结合了两个命令:

define() {
var=$1
val=$2
export var=$val
echo ${!var@}" -> "$var
}
EXAMPLE1="A"
EXAMPLE2="B"
EXAMPLE3="C"
define $EXAMPLE1 "X"
define $EXAMPLE2 "Y"
define $EXAMPLE3 "Z"

但它并没有给出预期的结果。代替接收:

EXAMPLE1 -> X
EXAMPLE2 -> Y
EXAMPLE3 -> Z

,我收到以下输出:

var -> X
var -> Y
var -> Z

,并且环境变量仍然被设置为ABC。我的方法似乎指定了局部变量var,而不是环境变量。

什么能解决我的问题?

不要用$EXAMPLE1而是用EXAMPLE1调用函数
我做了更多修改:

define() {
var=$1
val=$2
export $var=$val
echo "${var} -> ${val}"
}
EXAMPLE1="A"
EXAMPLE2="B"
EXAMPLE3="C"
define EXAMPLE1 "X"
define EXAMPLE2 "Y"
define EXAMPLE3 "Z"

相关内容

  • 没有找到相关文章

最新更新