1、以函数获取ip的案例
1)构建函数
function get_ip(){函数体 }
这个function关键字用于定义一个名为get_ip的函数
2)解析默认路由
array=($(echo "$route" | tr ' ' ' '))
array=($(/usr/sbin/ip route | tr ' ' ' '))
这个命令将route变量的内容转换为一个数组array,tr ' ' ' ' 用于将多个连续的空格替换为单个空格,确保数组的分割正确
ps:这里插入一个列出系统路由表的脚本,因为我想看array排列后的内容,其中/usr/sbin/ip route 可以用$route代替,但我的虚拟机操作系统是openeuler2203的x86,执行echo "$route"无任何输出
点击查看代码
array=($(/usr/sbin/ip route | tr ' ' ' '))
for element in "${array[@]}";do
echo "$element";
done
3)查找设备名称
dev=""
初始化一个空字符串dev,用于存储找到的设备名称
for i in $(seq 0 $(( ${#array[@]} -1)));do
使用for循环遍历数组array的索引,生成从0到数组长度减1的序列,确保遍历数组的每个元素
if [[ "${array[i]}" == "dev" ]];then
使用 if 语句检查当前元素是否等于 "dev"。[[ "${array[i]}" == "dev" ]] 是条件表达式,用于比较字符串。注意,条件表达式以 [[ 开始,以 ]] 结束,并且中间有空格
点击查看代码
#!/bin/bash
dev=""
for i in $(seq 0 $(( ${#array[@]} - 1))); do
if [[ "${array[i]}" == "dev" ]]; then
dev="${array[i+1]}"
break
fi
done
echo "Device: $dev"