当前位置: 首页 > news >正文

shell变量类型含义 长方形面积计算 截取相应字段方法

1.总结变量的类型及含义?
2.实现课堂案例计算长方形面积?(6种方式)
3.定义变量url=https://blog.csdn.net/weixin_45029822/article/details/103568815(通过多种方法实现)
1)截取网站访问的协议
2)截取网站访问账号信息

---------------------------------------------------------------------------------------------------------

1.总结变量的类型及含义?

  • (1)局部变量(普通变量):只在某个特定范围生效的变量,比如只能在当前进程中使用的变量,只能在函数中使用的变量。

    在命令行设置:在当前进程生效

  • (2)全局变量(环境变量):可以在创建他们的shell及其派生出来的子进程中使用(su 切换用户的时候会读取新的环境变量)。

    自定义环境变量和bash内置的环境变量。

  • 位置参数预定义变量
  • #!/bin/bash# 方法1:直接使用变量计算
    length=5
    width=3
    area=$((length * width))
    echo "方法1:直接使用变量计算,面积为 $area"# 方法2:通过用户输入获取变量值
    read -p "请输入长度:" length
    read -p "请输入宽度:" width
    area=$((length * width))
    echo "方法2:通过用户输入获取变量值,面积为 $area"# 方法3:使用函数传参计算
    calculate_area() {local l=$1local w=$2local result=$((l * w))echo $result
    }length=5
    width=3
    area=$(calculate_area $length $width)
    echo "方法3:使用函数传参计算,面积为 $area"# 方法4:使用bc命令进行浮点数计算
    length=5
    width=3
    area=$(echo "scale=2; $length * $width" | bc)
    echo "方法4:使用bc命令进行浮点数计算,面积为 $area"
    #!/bin/bashurl="https://blog.csdn.net/weixin_45029822/article/details/103568815"# 方法1:使用grep命令和正则表达式提取协议
    protocol=$(echo "$url" | grep -o "^[^:]\+")
    echo "方法1:使用grep命令和正则表达式提取协议,协议为 $protocol"# 方法2:使用awk命令提取协议
    protocol=$(echo "$url" | awk -F: '{print $1}')
    echo "方法2:使用awk命令提取协议,协议为 $protocol"# 方法3:使用sed命令提取协议
    protocol=$(echo "$url" | sed -n 's/^\([^:]\+\):\/\/.*/\1/p')
    echo "方法3:使用sed命令提取协议,协议为 $protocol"# 方法4:使用正则表达式提取账号信息
    account=$(echo "$url" | grep -o "//[^/]\+" | cut -c 3-)
    echo "方法4:使用正则表达式提取账号信息,账号信息为 $account"# 方法5:使用awk命令提取协议和账号信息
    protocol_account=$(echo "$url" | awk -F: '{print $1}' | awk -F// '{print $2}')
    echo "方法5:使用awk命令提取协议和账号信息,协议和账号信息为 $protocol_account"
    

    上面是用gpt查询的方法用于拓宽思路

    echo ${url%:*}    
    # https

    expr substr $url 1 5
    # https

    echo $url | cut -nb 1-5     
    # https
    echo $url | cut -d : -f 1    
    # https

    echo $url | cut -d / -f 4    
    # weixin_45029822

    expr substr $url 23 15    
    # weixin_45029822

    echo ${url:22:15}    
    # weixin_45029822

    tmp=${url#*net/} 
    echo ${tmp%%/*}        
    # weixin_45029822

http://www.lryc.cn/news/89125.html

相关文章:

  • Java:从单线程计数器到多线程数据同步synchronized和原子类Atomic
  • 提前进入行业顶尖阵营:高性能计算实习的竞争优势
  • Java程序设计入门教程--标识符和关键字
  • 国产IC芯片自动化测试系统ATECLOUD,助力芯片测试自动化
  • BeanFactory和ApplicationContext有什么区别?
  • js的BOM对象中的window、location使用
  • DAY 68 redis高可用的主从复制、哨兵、cluster集群
  • leetcode 1209 学会删除字符串
  • JavaScript6
  • 轻松安装Redis:不用担心配置问题
  • ChatGPT学习研究总结
  • SpringBoot枚举入参实战
  • Ansible介绍
  • GPT-4的免费使用方法分享
  • 一个产品的诞生
  • MQTT与传统的HTTP协议对比,优势在哪里呢?
  • 热榜!阿里出品2023版Java架构师面试指南,涵盖Java所有核心技能
  • 【小程序】封装时间选择组件:用单元格van-cell和插槽slot,包括起始时间和终止时间
  • 华为OD机试真题B卷 Java 实现【猜密码】
  • 沉淀-MYSQL
  • OJ练习第116题——二进制矩阵中的最短路径(BFS)
  • 2023上半年软件设计师真题评析
  • (汇编) 基于VS的x86汇编基础指令
  • 算法Day16 | 104.二叉树的最大深度,559.n叉树的最大深度, 111.二叉树的最小深度,222.完全二叉树的节点个数
  • java设计模式之责任链设计模式的前世今生
  • 是面试官放水,还是公司太缺人了?华为原来这么容易就进了...
  • PLC/DCS系统常见的干扰现象及判断方法
  • c++ 11标准模板(STL) std::map(四)
  • 6.开源非对称加密算法SM2实现
  • Toolformer and Tool Learning(LLMs如何使用工具)