Fazendo uma aula escrevendo um script bash para diagnósticos.
o bit em que estou completamente preso é como capturar apenas uma linha específica e um segmento de texto nessa linha.
IE: se eu fizer um ifconfig
[user@localhost ~]$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.88.140 netmask 255.255.255.0 broadcast 192.168.88.255
inet6 fe80::fbaa:d42c:24db:dca7 prefixlen 64 scopeid 0x20
ether 00:0c:29:bc:c1:4d txqueuelen 1000 (Ethernet)
Gostaria que o bash capturasse a linha 2 da coluna 12 a 27 para o endereço ipv4 em uma $ string, e continuasse a fazer o mesmo para netmask, broadcast, mac address e ipv6 address / cidr ...
também faça o mesmo para obter quaisquer servidores de nomes no arquivo resolve.conf.
Eu, naturalmente, tenho que repetir isso para cada interface ...
A menos que alguém possa recomendar uma maneira melhor de fazer isso.
Eu também estou querendo saber se existe uma maneira que eu possa inserir uma $ string para o arquivo ifcfg-ens33 para mudar o endereço IP (e todo o resto) ou será melhor recriar completamente o arquivo?
eu acho que com essa informação eu deveria ser capaz de fazer o resto da prac com bastante facilidade
EDITAR:
Eu posso ver que eu preciso fazer algo com campos, mas eu posso descobrir como fazer isso só fazer o campo 2 da linha 2 em $ ipv41
EDIT2:
Eu vim com isso depois de mais ler. mas eu não consigo fazer a saída entrar nas variáveis até agora. tentou echo, printf, & gt ;, > & gt ;, > > >
#import settings from ip command
#discover interface type into string
/sbin/ip -o -4 addr show up primary scope global| awk '{print $2}' | echo >
$if1
#discover interface ipaddress by interface type into strings
/sbin/ip -o -4 addr show $if1 | awk '{print $4}' | echo > $ipv4
/sbin/ip -o -4 addr show $if1 | awk '{print $6}' | echo > $bast
/sbin/ip -o -4 addr show $if1 | awk '{print $9}' | echo > $dhcp
/sbin/ip -o -6 addr show $if1 | awk '{print $4}' | echo > $ipv6
#print discovered info to screen
echo -e "---- Interface = $if1"
echo -e "---- DHCP Enabled? $dhcp"
echo -e "---- IPv4 Address = $ipv4"
echo -e "---- Broadcast = $bast"