2016-06-01 8 views
0

同じ名前の複数のローカル変数とグローバル変数を一緒にしようとしています。ローカル変数を作成する前に、別の名前でグローバル変数を格納するよりも優れたソリューションがありますか?同じ行のローカル変数とグローバル変数にアクセスするbash

#!/bin/bash 

#glocal 
a=10 

foo() { 
    #local 
    local a=2 
    echo $(($a*$a)) #should be local * global 
} 

cat << _EOF_ 
$(foo) 
$a 
_EOF_ 

出力:4
は、出力を望んでいた:20

+3

別の名前を使用してください。 'bash'は' echo $(($ a * $ :: a)) 'のようなC++ ishを書くことを可能にするスコープ演算子を持っていません。 – chepner

+2

私の記憶には、あなたが**これを行うことができる言語は、ほんの僅かで遠いものです。 –

答えて

3

はい、「ローカルを作成する前に、別の名前でグローバルに保存する」より良い解決策があります。より良い解決策は、あなたの地元の人たちに矛盾のない名前を使うことです。

このように曖昧さ回避を許可する構文機能はありません。

関連する問題