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



我正在使用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。有什么想法吗?

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

因此,您可以通过以下方式设置变量:

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

这样做:

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

也就是说,"总计百分比"、"接收百分比"和其他内容打印在 stderr 上。通过将stdrr重定向到/dev/null您可以摆脱这种噪音。

尽可能始终使用$(...)而不是`...`

相关内容

  • 没有找到相关文章

最新更新