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

Linux下输出未使用网络接口的Shell脚本优化:添加n+变量需求

改进版:输出未使用网络接口并存储到变量的Shell脚本

原脚本通过筛选无IPv4地址的网络接口实现输出,下面是添加变量存储结果的改进版本,既保留直接输出功能,又能将结果存入变量供后续脚本调用:

字符串变量版本(简单直接)

#!/bin/bash

# 初始化变量存储未使用的网络接口
unused_interfaces=""

# 遍历系统所有网络接口
for interface in $(ip addr show | awk '/^[0-9]+:/ {print $2}' | tr -d :)
do
  # 检查接口是否未配置IPv4地址
  if ! ip addr show "$interface" | awk '/inet / {print $2}' | grep -q .; then
    # 直接输出未使用的接口
    echo "$interface"
    # 将接口追加到变量中,用空格分隔
    unused_interfaces="$unused_interfaces $interface"
  fi
done

# 可选:输出变量存储的结果,用于验证或后续使用
echo "未使用接口列表(已存入变量unused_interfaces):$unused_interfaces"

数组变量版本(更健壮,适合复杂场景)

如果需要处理特殊命名的接口(比如含空格的接口名),推荐用数组存储,避免字符串分割问题:

#!/bin/bash

# 初始化数组存储未使用的网络接口
unused_interfaces=()

# 遍历系统所有网络接口
for interface in $(ip addr show | awk '/^[0-9]+:/ {print $2}' | tr -d :)
do
  # 检查接口是否未配置IPv4地址
  if ! ip addr show "$interface" | awk '/inet / {print $2}' | grep -q .; then
    # 将接口加入数组
    unused_interfaces+=("$interface")
  fi
done

# 直接输出数组中的所有未使用接口
printf "%s\n" "${unused_interfaces[@]}"

# 可选:验证数组内容
# echo "数组存储的未使用接口:${unused_interfaces[@]}"

说明

  • 新增的unused_interfaces变量(或数组)会自动收集所有未使用的网络接口
  • 直接输出功能保留,同时变量可用于后续脚本逻辑(比如批量禁用、配置这些接口)
  • 判定“未使用”的逻辑和原脚本一致:无IPv4地址的接口即为未使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 14:55:31