Atribuir um comando a um array no shell script não está funcionando?

0

Quando eu executo o comando no terminal, ele atribui o array.

$ FILES=($(ls ~/Desktop/TEST/))
$ echo ${FILES[@]}
file1.txt file2.txt file3.txt

Mas assim que eu fecho o terminal e o executo em um shell script eu recebo uma linha em branco?

$ ./TEST.txt 
$ echo ${FILES[@]}

$ 

Eu testei com echo $? e ele retorna verdadeiro / 0 .

Não sabe o que está acontecendo?

    
por Phil 01.12.2015 / 11:55

1 resposta

4

É porque o comando echo não faz parte do script. O script é executado em um subshell en quando o script termina a variável FILES não está mais disponível. Para disponibilizar a variável FILES para o uso atual do shell:

$ source ./TEST.txt
$ echo ${FILES[@]}
    
por 01.12.2015 / 12:07