2017-03-24 29 views
-3

以下のbashシェルスクリプトを実行しようとしていますが、期待される出力が得られません。可能性があります私は何か間違っているか、これを行う方法ではありません。シェルスクリプト変数の値が更新されない

#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

予想される出力:

/ホーム/デル/スクリプト

/ホーム/デル/スクリプト

どちらの変数値が同じでなければなりませんが、PARAM1値はpath1_one

+1

あなたの出力は、あなたの実際の出力よりも正確である「期待」と思う理由は明らかにされていません 'パス2 =「$のパス1」' – NullDev

+0

を使用してください。 'param_val = path1_one'は*文字列*' path1_one'を 'param_val'に割り当てます。なぜ「反映する」のだろうか? –

+0

...あなたが**間接譲渡や間接的な拡張を望んでいる場合は、これらのことを明確に判読可能な回答で明白に質問しています。 –

答えて

3

に反映されていない理由あなたはの値を使用するスクリプトを指示する必要がありますかわかりません変数path1で、名前はpath1ではありません。

用途:

path2="$path1" 
+0

NullDev、あなたのクイックレスポンスのおかげで、パス1から値を取得する方法を教えてください。 – subodh

+0

はまだ同じです... 'param_val =" $ path1 "'しかし、どこに 'path1_one'が定義されていますか? – NullDev

+0

私はparam1がpath1_oneの値であることを期待しています – subodh

関連する問題