

以下のsample.shをbashで動かした際に、変数を代入した特殊変数でエラーが吐かれます。  
おそらく文字列として扱われているため、引数を引っ張ってこれていないのだと思いますが、何か対策はありますか。

[code]

    [root@ test]# cat sample.sh
    #!/bin/bash
    
    echo $2
    
    echo ${2}
    
    N=2
    echo ${$N}
    
    [root@ test]# sh sample.sh a b c
    b
    b
    sample.sh: 行 8: ${$N}: 誤った代入です
    
[/code]


CC BY-SA 4.0
2018-10-04T10:13:42.613
48967
2018-10-05T01:31:04.270
30370
question
bash shellscript
bashの特殊変数への代入にエラー

[code]

    #!/bin/bash
    
    echo $2
    
    echo ${2}
    
    N=2
    echo ${!N}
    
[/code]

とすることで、

[code]

     % ./sample.sh foo bar
    bar
    bar
    bar
    
[/code]

が実現できます。


CC BY-SA 4.0
2018-10-04T16:11:14.130
48977
2018-10-05T01:31:04.270
2018-10-05T01:31:04.270
754
754
48967
answer