Como eu poderia incluir uma variável em um documento aqui?

1

Estou tentando usar uma variável global definida pelo usuário em uma situação cat <<eof>> filename , mas não está funcionando. Encontrei o que quero em exemplos simples de cat << eof neste fórum, o que me levou até aqui: link . Mas eu gostaria de algo parecido com o seguinte, com o% adicionado>> e filename (Isso não não funciona.):

#!/bin/bash

#after testing I will define this in .bashrc or somewhere?
set IP_ADDR = "123.123.123.123"

#empty the file in case there is something in it
truncate -s 0 sample.conf

# open a file and append
cat <<EOF >> sample.conf
  This is my sample config file
  Server IP = $IP_ADDR
  this is the last line of my sample config file
EOF

#print the file to verify
cat sample.conf

Isso produz uma string nula após Server IP =

sed funcionaria se eu já tivesse o arquivo escrito, exceto pelo valor da variável que está faltando, mas eu não necessariamente terei o endereço IP (ou qualquer outro) prontamente disponível como uma string literal.

Além disso, talvez eu não tenha a cadeia literal disponível para uso como um parâmetro de linha de comando quando eu executar o script. $1 funciona dentro do bloco de código cat << eof >> filename . Eu provei isso. Mas eu não terei acesso imediato ao valor quando eu começar este script ...

    
por ikmguy 16.01.2015 / 01:08

1 resposta

2
set IP_ADDR = "123.123.123.123"

está incorreto. Você precisa de:

IP_ADDR="123.123.123.123"

(sem espaços).

    
por 16.01.2015 / 01:09