2013-04-05 107 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