2013-04-05 113 views
2

我写了一个bash函数来导出一个环境变量。第一个函数参数是一个变量名,第二个是变量值。我想echo它显示什么价值导出:Bash函数,导出函数参数作为环境变量

#!/bin/bash 

env_var_export() 
{ 
    export $1=$2 

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

env_var_export var defaultVal456 

我的意思是,回声应打印:export var=defaultVal456。任何帮助?我知道我可以这样做:

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

但它不是解决我的问题。

回答

3

$$是一个特殊的变量,扩展到shell的pid,这就是你要在echo中评估的内容。你应该使用这样的间接引用:

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

这句法将在$1命名的变量,然后查找基于该名称(即间接)的值。

+0

谢谢,作品很棒:) – 2013-04-05 16:54:10

+0

永远让我找到答复!感谢你在3年前做出这个答案。 – 2016-04-09 23:25:56

+0

很高兴帮助! :) – FatalError 2016-04-09 23:27:42