You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何循环执行命令直到获取非空IP并写入/etc/ip.txt

解决方案

你可以通过Shell的while循环实现重试逻辑,直到成功写入非空的IP地址到目标文件为止,参考实现如下:

# 提前创建文件并配置权限,无需每次循环重复执行
sudo touch /etc/ip.txt
sudo chmod a+rwx /etc/ip.txt

# 循环执行直到获取到有效IP
while true; do
  sudo printf %s "$(hostname -I)" > /etc/ip.txt
  # 判断文件存在且内容非空则终止循环
  if [ -s /etc/ip.txt ]; then
    break
  fi
  # 等待1秒后重试,可根据实际需求调整等待时长
  sleep 1
done

可选优化

  • 如果你的设备存在多网卡多IP场景,只需要保留第一个IP,可以修改写入命令为:
    sudo printf %s "$(hostname -I | awk '{print $1}')" > /etc/ip.txt
    
  • 如果需要排除127.0.0.1这类回环地址,可以增加过滤逻辑:
    sudo printf %s "$(hostname -I | awk '{for(i=1;i<=NF;i++) if($i!~/^127\./) {print $i;exit}}')" > /etc/ip.txt
    

内容的提问来源于stack exchange,提问作者Jbro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 18:27:01