使ってきた
typeset -n ref="$1"
関数にnameref変数を設定します。
このコマンドも次のように思います。
local -n ref="$1"
これにより、関数の外部で使用するために関数に渡される変数の値を変更できます。
そうですか?
答え1
この質問を書くよりも自分でテストしてみる方がはるかに高速ではないでしょうか?
あなたのユースケースでは、2つのバリエーションは実際には同じです。生成された変数は1つの場合にのみローカルですが、参照された変数はどちらの場合もグローバルです(その関数でローカルに定義されていない限り)。