2017-03-24 26 views
-3

我試圖在bash shell腳本下執行,但沒有得到預期的輸出。可能我做錯了事,或者不是這樣做的方式。shell腳本變量值沒有得到更新

#bin/bash 
#set -x 

path1_one=/home/dell/scripts 
echo $path1_one 
param_val=path1_one 
param1=$(echo "$param_val" | awk -F '_' '{ print $0 }') 

#path2="$path1" 
echo $param1 

#echo $path2 

輸出:

/家庭/戴爾/腳本

path1_one

預期輸出:

/家庭/戴爾/腳本

/家庭/戴爾/腳本

兩個變量的值應該是相同的,但不知道爲什麼參數1的值不與path1_one反映

+1

使用'PATH2 =「$路徑1」' – NullDev

+0

,爲什麼你認爲你的「預期」產出比你的實際輸出更正確,是不是很明顯。 'param_val = path1_one'將* string *'path1_one'賦給'param_val';爲什麼會有什麼「反映」? –

+0

...如果您希望**間接分配或間接擴展,我們已經明確詢問如何執行這些操作並提供清晰可讀的答案。 –

回答

3

你需要告訴您要使用的值的腳本變量path1,而不是名稱path1

用途:

path2="$path1" 
+0

NullDev,感謝您的快速響應,請參閱我更新的完整腳本。請告訴我,如何從path1中獲取價值。 – subodh

+0

仍然一樣...'param_val =「$ path1」'但是'path1_one'定義在哪裏? – NullDev

+0

我期待param1是path1_one值 – subodh