Como mudar o final de uma informação de uma variavel no shell script [RESOLVIDO]

1. Como mudar o final de uma informação de uma variavel no shell script [RESOLVIDO]

Herisson Ricardo Dias de Oliveira
herissonlinux

(usa Slackware)

Enviado em 10/06/2021 - 11:44h

Olá pessoal, estou com essa dúvida aqui, como faço pra mudar o final do ip que obtive da maquina que estou conectado? consegui pegar o ip, agora quero mudar só o ultimo caractere com outra variavel.



#!/bin/bash
echo "Deseja conectar a um computador da REDE? (sim ou não): "
select yn in "sim" "nao"; do
case $yn in
sim ) ip=$(ifconfig eth0 | grep "inet end" | awk '{print $3}')
echo $ip
echo -e "Coloque o ultimo numero do ip: Exemplo: 1"
read rede
#ssh 192.168.0.9$rede #aqui esta comentado, foi só um exemplo funciona assim, precisa com a variavel pra redes diferente.
ssh $ip$rede ## sei que aqui esta errado, mas quero mudar o ultimo numero aqui
break;;
nao ) exit;;
esac
done



  


2. MELHOR RESPOSTA

Mauricio Ferrari
mauricio123

(usa Slackware)

Enviado em 10/06/2021 - 21:13h

Lá vai um exemplo:


$ a="192.168.0.10"

$ b=2

$ ip="${a%.*}.$b"

$ echo $ip
192.168.0.2




___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento


3. Re: Como mudar o final de uma informação de uma variavel no shell script

Mauricio Ferrari
mauricio123

(usa Slackware)

Enviado em 10/06/2021 - 21:17h

ip="${a%.*}.$b"

Vou explicar melhor isso.

${a%.*} - isso é expansão de parâmetros, o % retira uma ocorrência predefinida do final da string, que no caso foi " .* " , simples assim.

.$b - O ponto foi retirado com a expansão de parâmetros, por isso ele deve ser reinserido.

Adaptando ao teu exemplo: ssh "${ip%.*}.$rede"

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento



4. Re: Como mudar o final de uma informação de uma variavel no shell script [RESOLVIDO]

Herisson Ricardo Dias de Oliveira
herissonlinux

(usa Slackware)

Enviado em 11/06/2021 - 08:44h


mauricio123 escreveu:

Lá vai um exemplo:


$ a="192.168.0.10"

$ b=2

$ ip="${a%.*}.$b"

$ echo $ip
192.168.0.2




___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento


Ok, Vlw mesmo brother, já vai me ajudar bastante na automação de minhas tarefas aqui.


5. Re: Como mudar o final de uma informação de uma variavel no shell script [RESOLVIDO]

João Cláudio de Alcântara
aguamole

(usa Lubuntu)

Enviado em 11/06/2021 - 20:03h

Da para fazer com sed.
$ a="192.168.0.10"

$ b=2

$ sed "s/$a/192.168.0.$b/"

Eu n testei to no cell, mas com sed da para fazer.


CPU i5-8400 GTX 750 SofRaid 4xSSD 16GB DDR4 mesmo assim uso Lubuntu.


6. Re: Como mudar o final de uma informação de uma variavel no shell script [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 11/06/2021 - 21:12h


aguamole escreveu:

Da para fazer com sed.
$ a="192.168.0.10"

$ b=2

$
 sed "s/$a/192.168.0.$b/" 


Eu n testei to no cell, mas com sed da para fazer.


CPU i5-8400 GTX 750 SofRaid 4xSSD 16GB DDR4 mesmo assim uso Lubuntu.

Que "SED" é esse AGUAMOLE?
----------------------------------------
a="192.168.0.10"
b=200
sed "s/[0-9]\+$/$b/" <<< "$a"
192.168.0.200





______________________________________________________________________
Att.: Marcelo Oliver



7. Re: Como mudar o final de uma informação de uma variavel no shell script [RESOLVIDO]

Mauricio Ferrari
mauricio123

(usa Slackware)

Enviado em 11/06/2021 - 21:20h

São várias as formas de fazer, ou preferi passar a dica da expansão de parametros que é uma bala, se precisar fazer muita dessas automações ou um script muito longo vai ser mais eficiente do que ficar usando comandos.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento



8. Re: Como mudar o final de uma informação de uma variavel no shell script [RESOLVIDO]

João Cláudio de Alcântara
aguamole

(usa Lubuntu)

Enviado em 12/06/2021 - 00:03h

Msoliver o que tem de errado no meu sed? Eu n to sem pc ja a muito tempo, n posso testar.
E o que esse +$ que vc uso faz?


CPU i5-8400 GTX 750 SofRaid 4xSSD 16GB DDR4 mesmo assim uso Lubuntu.


9. Re: Como mudar o final de uma informação de uma variavel no shell script [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 12/06/2021 - 17:24h

aguamole escreveu:

Msoliver o que tem de errado no meu sed?
Eu n to sem pc ja a muito tempo, n posso testar.
E o que esse +$ que vc uso faz?


CPU i5-8400 GTX 750 SofRaid 4xSSD 16GB DDR4 mesmo assim uso Lubuntu.


Vamos lá AguaMole.
a="192.168.0.10"
b=200
sed "s/[0-9]\+$/$b/" <<< "$a"
192.168.0.200
Esse "+$", é parte da REGEX.
[0-9]\+$ => Troca "um ou mais" "+" números do final, pela var "$b"
O primeiro erro do seu sed, é que não define onde será feita a alteração.....
sed "s/$a/192.168.0.$b/"
Seu comando, fica esperando pela entrada "stdin"
Att.: Marcelo Oliver



10. Re: Como mudar o final de uma informação de uma variavel no shell script [RESOLVIDO]

João Cláudio de Alcântara
aguamole

(usa Lubuntu)

Enviado em 12/06/2021 - 22:06h

Verdade msoliver.
sed "s/$a/192.168.0.$b/" <<< "$a"

CPU i5-8400 GTX 750 SofRaid 4xSSD 16GB DDR4 mesmo assim uso Lubuntu.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts