esta resposta pode abranger Espaços nas variáveis ambientais do Linux?
Você coloca a variável de ambiente entre aspas duplas. exemplo demonstrando que abaixo
Eu estou fazendo ls 'asdf asdf'
, que é ls em um arquivo 'adsf asdf' com um espaço no nome do arquivo. Eu quero fazer isso com uma variável. Você vê com aspas duplas, obtém o resultado. Sem citações, trata o espaço como especial e procura o arquivo asdf duas vezes. E com aspas simples, ls '$f'
, procura literalmente o dólar f. Mas com aspas duplas ls "$f"
funciona, ou seja, dá o mesmo resultado que ls 'asdf asdf'
.
$ ls 'asdf asdf' <ENTER>
ls: cannot access asdf asdf: No such file or directory
$ export f='asdf asdf' <ENTER>
$ echo $f <ENTER>
asdf asdf
$ ls $f <ENTER>
ls: cannot access asdf: No such file or directory
ls: cannot access asdf: No such file or directory
$ echo $f <ENTER>
asdf asdf
$ ls '$f' <ENTER>
ls: cannot access $f: No such file or directory
$ ls "$f" <ENTER>
ls: cannot access asdf asdf: No such file or directory