Pessoal,
Estou desenvolvendo um script de automação da instalação e configuração de uma solução. Até aí tudo bem.
O problema para ser simples, advirto!
Acontece que eu desejo adicionar algumas linhas num determinado arquivo em caso do arquivo estiver satisfizer uma condição que eu aplico.
Utilizarei um exemplo semelhante para figurar minha situação:
- Esclarecendo a situação:
Eu tenho o arquivo interfaces (/etc/network/interfaces) e, se o arquivo tiver 10 linhas, eu quero adicionar outras linhas.
Vamos lá!
# cat -n /etc/network/interfaces
1 # This file describes the network interfaces available on your system
2 # and how to activate them. For more information, see interfaces(5).
3
4 # The loopback network interface
5 auto lo
6 iface lo inet loopback
7
8 # The primary network interface
9 allow-hotplug eth0
10 iface eth0 inet dhcp
- Criando um script rápido e simples para figurar melhor a problemática:
#!/bin/bash
INTERFACES=$(cat -n /etc/network/interfaces | wc -l)
if [[ $INTERFACES >=10 ]]; then
sed -i '9,$ d' /etc/network/interfaces #Apagará da 10 linha em diante do arquivo
echo "auto eth0" >> /etc/network/interfaces
echo "allow-hotplug eth0" >> /etc/network/interfaces
echo "iface eth0 inet dhcp" >> /etc/network/interfaces
echo "# auto eth1" >> /etc/network/interfaces
echo "# allow-hotplug eth1" >> /etc/network/interfaces
echo "# iface eth1 inet dhcp" >> /etc/network/interfaces
cat -n /etc/network/interfaces
fi
Problema: Observam que, satisfeita a condição de ter a partir de 10 linhas o arquivo, eu quero conservar as 9 primeiras linhas e adicionar outras linhas por meio do redirecionamento do stdin do comando echo até o arquivo interfaces?! Então, se eu tiver 20 linhas a serem adicionadas neste arquivo, vocês conhecem um método mais prático/ objetivo do que encher o script de "echo "xxxx" >> arquivo" ?