ため-n宣言し、私はdeclare -n
で宣言された参照変数を使用していますか?のは、私はこのような何かをやってみたかったとしましょう:位置パラメータ以下のコードで
for ((i=$#; i>=1;i--)); do
a="${!i}"
echo "$a"
done
しかし、「簡略化」、パラメータ展開を必要とせず:
for ((i=$#; i>=1;i--)); do
declare -n a=$i
echo "$a"
done
ため-n宣言し、私はdeclare -n
で宣言された参照変数を使用していますか?のは、私はこのような何かをやってみたかったとしましょう:位置パラメータ以下のコードで
for ((i=$#; i>=1;i--)); do
a="${!i}"
echo "$a"
done
しかし、「簡略化」、パラメータ展開を必要とせず:
for ((i=$#; i>=1;i--)); do
declare -n a=$i
echo "$a"
done
Namerefsは位置パラメータを参照するために使用することはできません。
あなたは間接的な拡張のためのパラメータ展開構文を使用せずに、アウトオブオーダーあなたの引数を反復処理したい場合は、そのに数値-インデックス付きの配列とインデックスにそれらをダンプ考慮は:
args=("$0" "[email protected]")
for ((i=$#; i<=1; i--)); do
echo "${args[$i]}"
done
これについて考えてみると、 'eval 'a = $'" $ i "' – PesaThe
のような素晴らしい構造を使うこともできます。 'eval'は選択肢が実用的でない場合にのみ許容される方法とみなされます。 http://mywiki.wooledge.org/BashFAQ/048も参照してください。 –
あなたはありますかより良いユースケース? 'のために'; echo "$ a"; doneはかなり単純です。 –
「$ @」で 'for x 'だけをやりたいですか? echo "$ x";済んだ? –
@PatrykObara、...もっと見ると、OPは反復しようとしています*後方に*。 –