Script para abrir vlc com ip local e porta

0

Estou tentando criar um script para abrir o vlc com meu ip local e a porta 8888. Meu script atual:

#!/bin/bash
vlc http://10.0.0.1:8888/

Isso funciona bem, mas quando eu vou para outra rede o ip local muda para 10.0.0.64, e o script é inútil. Eu consegui encontrar meu novo ip local usando:

hostname -I

O novo script:

#!/bin/bash

a="http://"
b=":8888/"
ip="$(hostname -I)"

final=${a}${ip}${b}

vlc $final

Mas isso não funciona.

echo $final
http://10.0.0.0.1 :8888/

Hmmm ...

Por que minha variável tem um espaço nela e como posso removê-la? Alguém sabe de uma maneira melhor de fazer isso?

    
por Picccard 13.05.2014 / 18:34

1 resposta

1

Como hostname -i lista todos os endereços IP do host, isso pode ser mais de um. Os endereços IP são separados por espaços. A função é um pouco "preguiçosa" e coloca um espaço após cada endereço IP, mesmo que seja apenas um.

Você pode remover o espaço no final, mas se seu host tiver mais de um endereço IP, esse script ainda falhará.

É melhor usar isso em vez disso (como explicado aqui ):

/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'

Você deve substituir eth0 pela interface da qual deseja o endereço IP.

Assim, o seu script se torna (eu também diminuí um pouco como você pode ver):

#!/bin/bash

IP='/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}''

vlc "http://${IP}:8888/"
    
por Louis Matthijssen 13.05.2014 / 18:43