Problema ao usar variável definida pelo usuário em um script

1

O seguinte é um script simples, chamado myscript , que eu escrevi para executar um comando.

dcmpath='$HOME/Data'
dcmfile='IM1'
dcm2nii $dcmpath/$dcmfile

Infelizmente, o bash não reconhece o caminho na frente de dcm2nii e não consigo executar o último comando no arquivo. Eu ficaria grato se alguém pudesse me dizer o que está perdendo. Qual seria a melhor maneira de personalizar o caminho e o nome do arquivo que é o argumento de um comando?

    
por AFP 19.05.2014 / 05:20

1 resposta

3
dcmpath="$HOME/Data"
dcmfile="IM1"
dcm2nii "$dcmpath/$dcmfile"

Na primeira linha, você deve usar aspas duplas em vez de aspas simples. Aspas simples impedem que variáveis como $HOME sejam expandidas; eles são interpretados literalmente. Você pode ver o manual do bash para detalhes: link

Não importa na segunda linha; aspas simples ou duplas funcionarão bem.

Também é boa ideia citar (duplamente) o argumento na última linha, caso as variáveis contenham um espaço.

    
por 19.05.2014 / 05:24