shell脚本学习

文章详细描述了如何通过编程脚本,利用sed命令在目标文件中从第1行开始,根据预设的SSID列表动态插入或更新`parameterSSID`的值,特别强调了使用MAC地址生成SSID并处理特殊字符的过程。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


获取代码所在行的行号:

list_row_SSID=$(sed -n '/parameter SSID = /=' $DEFAULTS_VAPS)

sed替换:

SSID=$(echo -e "\x$(setmac 2 $(echo $(($TAG_ID_SSID_BASE + $offset))) | sed -n '2p' | sed 's/ /\\x/g' | sed 's/..$//g')")

只读取第二行:

sed -n '2p'

空格替换:

sed 's/ /\\x/g'

最后两位替换:

sed 's/..$//g'

echo命令用于在终端上打印文本。-e选项表示启用反斜杠转义字符的解释:

echo -e "\x$(setmac 2 $(echo $(($TAG_ID_SSID_BASE + $offset))) | sed -n '2p' | sed 's/ /\\x/g' | sed 's/..$//g')"

目标文件中从第1行到第一个“parameter SSID = ”所在行的范围 进行替换

sed -i "1,/parameter SSID = /{s/parameter SSID = .*/parameter SSID = \"$SSID\"\;/}" $DEFAULTS_VAPS

i++操作:

offset=$(($offset + 1))

if操作:

if [ $SSID != "\x" ];then
    sed -i "1,/parameter SSID = /{s/parameter SSID = .*/parameter SSID = \"$SSID\"\;/}" $DEFAULTS_VAPS
fi

for循环:

for row_SSID in $list_row_SSID
do
    offset=$(($offset + 1))
    numMod=$(($numMod + 1))
    if [ "$numMod" -lt "$NUM_SSID" ];then
        next_row=$(($row_SSID + 1))
        SSID=$(echo -e "\x$(setmac 2 $(echo $(($TAG_ID_SSID_BASE + $offset))) | sed -n '2p' | sed 's/ /\\x/g' | sed 's/..$//g')")
        if [ $SSID != "\x" ];then
            sed -i "$next_row,/parameter SSID = /{s/parameter SSID = .*/parameter SSID = \"$SSID\"\;/}" $DEFAULTS_VAPS
        fi
    fi
done
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值