#  > Desenvolvimento >  > Linguagens de Programação >  >  Dificuldade em solucionar problema simples em script bash

## Good_speed

Amigos, boa tarde

Não estou conseguindo receber o resultados desejado em meu script bash, alguém poderia ajudar?

script.sh
#!/bin/bash

MIRROR=/repo

cat <<EOF > /etc/apt/mirror.list 


set base_path $MIRROR 
set mirror_path $base_path/mirror
EOF

*Resultado que recebo:*
$cat mirror.list
set base_path /repo
set mirror_path /mirror 

*Preciso deste resultado:*
set base_path /repo 
set mirror_path $base_path/mirror

Como posso fazer?

Obrigado...

----------


## rogfanther

Você quer que apareça o "$base_path" ? 
Não estou com um linux perto pra testar, mas tenta colocar uma barra "" antes do $. Realmente não lembro a sintaxe, mas você vai ter que fazer um "escape" desse símbolo para que o bash não tente interpretá-lo e tratá-lo como variável ...

Abraço ...

----------


## Good_speed

> Você quer que apareça o "$base_path" ? 
> Não estou com um linux perto pra testar, mas tenta colocar uma barra "" antes do $. Realmente não lembro a sintaxe, mas você vai ter que fazer um "escape" desse símbolo para que o bash não tente interpretá-lo e tratá-lo como variável ...
> 
> Abraço ...


Só existe esta maneria? ou tem uma maneira de engloba tudo?

Obrigado

----------


## rogfanther

como assim englobar tudo ? Não ficou claro pra mim se você quer que apareça o conteúdo da variável base_path, ou se quer que apareça a string de caracteres $base_path ...

Se for pra aparecer o conteúdo, tem que atribuir o conteúdo antes da parte do cat . 
Se for pra aparecer a string, tem que "escapear" o cifrão porque o bash interpreta ele.

Como é dentro de um arquivo, acho que você poderia talvez usar print ou echo redirecionando para o arquivo.Mas também tem que ter alguns cuidados com a sintaxe, para também não tentar interpretar os caracteres especiais ..

----------


## Bruno

usa \ antes do $

----------

