使用本地 ip 和端口打开 vlc 的脚本

使用本地 ip 和端口打开 vlc 的脚本

我正在尝试创建一个脚本来使用我的本地 IP 和端口 8888 打开 vlc。我当前的脚本:

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

这很好用,但是当我转到另一个网络时,本地 IP 变为 10.0.0.64,脚本就没用了。我设法使用以下命令找到我的新本地 IP:

hostname -I

新脚本:

#!/bin/bash

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

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

vlc $final

但这不起作用。

echo $final
http://10.0.0.0.1 :8888/

嗯……

为什么我的变量中有一个空格?我该如何删除它?有谁知道更好的方法吗?

答案1

因为hostname -i列出了主机的所有 IP 地址,所以可以有多个。IP 地址之间用空格分隔。该函数有点“偷懒”,在每个 IP 地址后面都加了一个空格,即使只有一个。

您可以删除末尾的空格,但如果您的主机有多个 IP 地址,此脚本仍然会失败。

最好使用它(如解释的那样这里):

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

您应该eth0用您想要的 IP 地址的接口来替换。

因此你的脚本变成了(如你所见,我也把它弄短了一点):

#!/bin/bash

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

vlc "http://${IP}:8888/"

相关内容