2011-08-11 9 views
1

別の変数内の変数を使用する方法bashスクリプトは:私は配列で渡されたコマンドライン引数を格納する必要が

私のコマンドは

./test1.sh 2 4 6 

は、今私は、アレイ内の2 4 6を格納する必要がありますそして...

s1=$#  
"it tells how many arguments are passed." 


for ((c=1; c<=$s1; c++)) 

do 

    a[$c]}=${$c} 

を使用してイムは、私は、引数の値を取るが、それは悪いsubstitionを示しているため${$c}を書かれています。

答えて

0

は、必ず最初の引数を選んで、それをドロップすることができます。 $1shiftを使用してください。

c=1 
while [ $# -gt 0 ]; do 
    a[$c]=$1 
    c=$((c+1)) 
    shift 
done 
+0

uが – pankaj

+0

非常に有用になります....のコードを書いてくださいすることができます何を探していたのですか?:) –

7

これはあなたの引数を持つ配列与える:args=("[email protected]")

をそして、あなたは、このようにそれらを呼び出すことができます。echo ${args[0]} ${args[1]} ${args[2]}

+0

はこれがそんなにありがとう...あなたは、コマンドシフトを使用する場合、それはどのような$ 2にあることは$ 1、および$ 3 $ 2へ来て、 – pankaj

+1

うれしい私は助けることができました。あなたは受け入れられた答えに印を付けることができるので、問題は「未回答」セクションにとどまることはありませんか? – johangu

1

bashの変数は\ $$ VARNAMEまたは$ {でindirectly referencedすることができます! version 2 でVARNAME}ので、あなたの代入文でなければなりません:

a[$c]=${!c} 

または

eval a[$c]=\$$c 
関連する問題