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/"