3

これが可能かどうか疑問に思っています:

スクリプト名:testing

#! /bin/bash
i=2

arg=`echo "$"$i`

echo $arg      #value should be the value of $2 and not just '$2' string

echo $2

exit 0

指図:testing a b

出力

$2

b

$2の値を$argに直接割り当てる以外に、文字列「$ 2」を表示するだけでなく、$ argの値を「b」である$2の値と等しくする方法はありますか?arg = $ 2?

このarg=を実行しようとしましecho ${$i}たが、次のエラーが発生します:テスト:$ {$ i}:不正な置換

前もって感謝します

4

1 に答える 1

8

はい; 次のような間接展開を使用できます。

i=2
arg="${!i}"          # equivalent to:    arg="$2"

Bash Reference Manualの§3.5.3「Shell Parameter Expansion」の第 4 段落を参照してください。

于 2013-02-22T06:24:51.407 に答える