Continuo a ricevere errori di sostituzione errati sugli script di bash con gli array

4

Ho lavorato su uno script Bash usando un array. Continuo a ricevere questo messaggio, "Cattiva sostituzione". Quindi ho cercato su Google il problema e ogni esempio con cui sono uscito funziona presumibilmente ma non sul mio computer. Ecco un semplice script che funziona presumibilmente.

#!/bin/bash
o="12345"
a=o
b=${!a}
echo ${a}
echo ${b}

Ma quando lo eseguo, ottengo questo ...

[email protected]:~/IStests/test script$ sh test4.sh
test4.sh: 4: test4.sh: Bad substitution

Sto usando Ubuntu 14.04 e la versione di Bash è ... GNU bash, versione 4.3.11 (1) -release (x86_64-pc-linux-gnu)

Qualcuno può dirmi cosa sta succedendo ???

    
posta Bob-El 08.06.2015 - 05:38

1 risposta

8

Devi eseguire lo script come bash e non sh .

Quindi eseguilo con

bash test.sh

In alternativa, puoi impostare execute bit sul tuo file facendo

chmod +x test.sh

quindi esegui il tuo script come

./test.sh

perché hai già l'interprete della shell dei comandi ( shebang ) come prima riga #!/bin/bash .

    
risposta data Terrance 08.06.2015 - 05:49

Leggi altre domande sui tag