echo \"$(hostname -I)\"
输出"111.111.111 "
我怎样才能避免额外的空间并改为"111.111.111"
ilk*_*chu 11
如果命令打印空格,它将包含在输出中。好吧,实际上,由于命令替换没有被引用,结果将被分词,并且两个字符串"111.111.111
和"
将作为两个不同的参数传递echo
,echo
然后打印用单个空格连接。它不会改变这里的输出echo
,但在许多其他情况下这很重要。如果命令替换后没有任何内容,则空格将在分词过程中消失。
很可能是这样hostname -I
打印一个尾随空格,因为它可能会打印多个 IP 地址,并且在每个 IP 地址后打印一个空格比跳过最后一个 IP 地址更简单。
要删除空格,您可以使用后缀删除扩展:
ip="$(hostname -I)"
ip="${ip% }"
printf '"%s"\n' "$ip"
Run Code Online (Sandbox Code Playgroud)
或者利用对你有利的分词:
printf '"%s"\n' $(hostname -I)
Run Code Online (Sandbox Code Playgroud)
后者会单独引用每个以空格分隔的 IP 地址,并每行打印一个。
归档时间: |
|
查看次数: |
615 次 |
最近记录: |