Dificuldade em solucionar problema simples em script bash
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...
Re: Dificuldade em solucionar problema simples em script bash
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 ...
Re: Dificuldade em solucionar problema simples em script bash
Citação:
Postado originalmente por
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 ...
Só existe esta maneria? ou tem uma maneira de engloba tudo?
Obrigado
Re: Dificuldade em solucionar problema simples em script bash
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 ..
Re: Dificuldade em solucionar problema simples em script bash