从curl命令获取shell脚本中的正确输出

时间:2014-01-13 20:55:03

标签: linux bash shell ip

我使用curl命令获取我的IP地址,我想将其保存为shell变量。

我使用以下命令获取IP地址

curl ipinfo.io/ip

我这样分配变量:

IPADDR=`curl ipinfo.io/ip`

但是当我回应这个时,我得到以下内容:

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                               Dload  Upload   Total   Spent    Left  Speed
100    14  100    14    0     0     41      0 --:--:-- --:--:-- --:--:--   164
24.18.247.198

我想要的只是24.18.247.198。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

curl提供了一个操作“静音”的属性:-s

因此,您可以这样设置变量:

IPADDR=$(curl -s ipinfo.io/ip)

答案 1 :(得分:1)

这样做:

IPADDR=$(curl ipinfo.io/ip 2>/dev/null)

即,“%Total”,“%Received”等在stderr上打印。通过将stderr重定向到/dev/null,你可以摆脱那种噪音。

尽可能使用$(...)代替`...`