openwrt 下shell 操作随笔

背景介绍

最近一段时间在 openwrt下面使用shell进行脚本开发。开发完成后,进行整理归纳,方便后续回顾学习

shell 一些使用技巧

shell 基础知识

`` 和()(())

` cmd` (反引号) 和 $(cmd) 都表示执行 cmd指令:反引号``易看错,但更通用。$()易看,但有些shell 不支持,不过 openwrt支持。我倾向使用$()

比如:

match_ret=$(echo "${line}" | grep "\^" | grep -v grep)

或者

# 其中 tr -d '\r' 是因为该文件里面有\r\n,就是一行里面只有一个\r(回车符)
# tr -d 删除 字符 
for line in `cat ${showat_info} | tr -d '\r'`
do
    # 输出字符是 15个数字 \d 表示数字 {15} 表示重复15ci
    match_ret=$(echo ${line} | egrep '^\d{15}')

done
    

(()) 表示 数学运算

# 说明:local 必须用于函数里面
# 当 shell [] 用于test时, [ conditon ] 中 conditon 和 左右[ ] 间隔一个字符,不要挨着
function test_while_circle(){
    local count=0
    while [ ${count} -le 5 ];do
        echo ${count}
        count=$(($count + 1))
    done
}

 在(()) 中的字符可以使用$ 也可以不使用$,直接使用变量名称,如

a=5; b=7; c=2
echo $(( a+b*c ))
echo $(($a+$b*$c))

 $(( )) 还可作不同进制(如二进制、八进位、十六进制)转十进制运算

# 16# 表示 16进制,将# 后面的数值转换为10进制
echo $((16#25))
37
echo $((16#2a))
42
# 8# 8进制
echo $((8#21))
17

{}

$var 和 ${var} 都表示 获取var的值, 其中${} 表示的界限会更清晰。当然 ${}可用于 字符串删除,暂时没有使用到。参见示例:

参见网页:

https://zhuanlan.zhihu.com/p/82112596 有介绍 ${} 用于字符串删除相关

[] 、[[]] 和 (())

如上描述 [] 表示test ,与test的条件要间隔开

# -z 表示为empty,-n 表示不为空。 ${#var3} 表示var3的长度
     if [ -z ${var1} ] || [ -z ${var2} ]; then
          echo "var1 or var2 is empty then exit"
          exit
     fi

shell 使用正则匹配

比如匹配一个65.453.89.67.023 这种格式的数据,怎么匹配

匹配办法就是正则表达式:

echo 65.453.89.67.023 | egrep '\d{2}\.\d{3}\.(\d{2}\.){2}\d{3} 

这个原理可以简单匹配IP地址:xxx.xxx.xxx.xxx 但是 IP地址还有一些其他限制

正则表达式简单说明:\d 匹配数字,{2} 和 {3} 出现两次三次,

()括号里面表示一个整体。(\d{2}\,){2} 表示括号里面的内容出现了两次。

\. 中\ 转义字符,. 含有特殊含义 匹配除换行符(\n、\r)之外的任何单个字符,,转义后,就表示.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenWrt下,LuCI是一个由Lua实现的网页系统配置接口,用于管理和配置路由器。它是基于MVC框架的,开发者可以使用Lua脚本来编写新的功能页面。LuCI的相关资料可以在官方说明文档和模块说明文档找到。\[3\] 如果你在OpenWrt没有安装luci,可能是因为默认编译的OpenWrt版本没有包含luci。你可以通过SSH远程访问路由器,但无法打开管理页面。这可能是因为你无法访问192.168.1.1这个地址,可能是由于连接被拒绝。\[2\] 如果你想学习OpenWrt下的LuCI,你可以参考上述提到的官方说明文档、模块说明文档以及一些参考博客。这些资料将帮助你了解Lua脚本的基本语法、UCI(Unified Configuration Interface)以及CBI(Configuration Binding Interface)等相关概念。\[3\] #### 引用[.reference_title] - *1* *2* [openwrt开发使用-增加luci](https://blog.csdn.net/lyn631579741/article/details/128244632)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Openwrt:LuCI入门(一)](https://blog.csdn.net/qq_28812525/article/details/103870169)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值