if [ -n "$FF_PID" ]; then echo"找到Firefox进程 (PID: $FF_PID),正在关闭..." kill$FF_PID sleep 1 # 检查是否关闭成功 if ps -p $FF_PID > /dev/null; then echo"普通关闭失败,尝试强制关闭..." kill -9 $FF_PID fi echo"Firefox已成功关闭" else echo"未找到运行的Firefox进程" fi
# 获取所有网络接口名称 interfaces=$(ip -o link show | awk -F': ''{print $2}' | sort -u)
# 遍历每个接口获取IP地址 for intf in$interfaces; do # 跳过回环接口和未启用的接口 if [[ "$intf" == "lo" ]] || ! ip link show "$intf" | grep -q "state UP"; then continue fi # 获取IPv4地址 ipv4=$(ip -4 addr show dev "$intf" | grep -oP '(?<=inet\s)\d+(\.\d+){3}') # 获取IPv6地址(可选) ipv6=$(ip -6 addr show dev "$intf" | grep -oP '(?<=inet6\s)[\da-f:]+' | head -1) # 输出结果 if [ -n "$ipv4" ]; then echo"网卡: $intf, IPv4: $ipv4" fi if [ -n "$ipv6" ]; then echo"网卡: $intf, IPv6: $ipv6" fi done
获取所有网络接口:使用 ip -o link show 列出所有网络接口
过滤活跃接口:
跳过回环接口 (lo)
只显示状态为 “UP” 的接口
获取IP地址:
IPv4 地址:使用 ip -4 addr show
IPv6 地址:使用 ip -6 addr show(可选)
格式化输出:以清晰格式显示网卡名称和IP地址
#!/bin/bash
# 遍历所有网络接口 for intf in /sys/class/net/*; do # 获取接口名称 intf_name=$(basename"$intf") # 跳过回环接口 if [ "$intf_name" = "lo" ]; then continue fi # 检查接口是否启用 if [ "$(cat "$intf/operstate")" != "up" ]; then continue fi # 获取IPv4地址 ipv4=$(ip -4 addr show dev "$intf_name" 2>/dev/null | awk '/inet/ {split($2, a, "/"); print a[1]}') # 输出结果 if [ -n "$ipv4" ]; then echo"网卡: $intf_name, IP: $ipv4" fi done