首页 > 解决方案 > 为什么 `($(hostname -I))` 会扩展到 IP 列表的第一个单词?

问题描述

我正在使用以下构造来获取主机的第一个 IP。

firstip=($(hostname -I))

hostname 命令返回我盒子的所有 IP,但不是 127.xxx,这正是我想要的。我使用返回的第一个 IP。

但我不明白我正在使用的语法。根据 bash 手册()计算括号内的表达式并返回结果。分词不适用于作业。

我原以为它会扩展到所有 IP,但它会返回第一个单词(IFS 设置为默认值,也就是空白)。如果我不使用括号,firstip则分配 IP 列表。

假设variable=(list)将第一个单词分配给listto是否安全variable?这在 bash 手册页中的解释是什么?

标签: bash

解决方案


推荐阅读