2016-03-28 6 views
1

以下の例では、エクスポートされた変数があります。名前は関数内のローカルとして再使用されます。関数内には、同じ名前のENV変数を使用する子プロセスがあります。 zshのは、変数の設定を解除しながら、オリジナルのエクスポート値を再使用していますzshとbashでエクスポートされた変数を持つ関数の "local + x"の予想される動作は何ですか?

バッシュ:

function the_func { 
    local +x MY_VAR="new value" 
    my -child -process # === in zsh: $MY_VAR is undefined 
         # === in bash: $MY_VAR="original" 
} 

export MY_VAR="original" 
the_func 

が、これはzshの中やbashのバグですか?または、2つの間のわずかな違いは?

答えて

関連する問題