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

shell的编程方式

文章目录

  • 变量
    • 俩种方式
      • 第一种方式
      • 第二种方式
    • 取消变量
    • 数组
      • 创建数组
      • 获取数组元素的方式
    • read输出的方式
      • 限制输入的方式
  • 流程控制方式
    • for循环输出的方式
      • 第一种方式
      • 第二种方式
      • while循环输出的方式
      • select选择输出的方式
  • 判断方式
    • 判断的四种方式
      • 第一种方式
        • 第二种方式
        • 第三种方式
  • 算术的方式
    • 算术运算符号
    • 算术第二种方式
  • 字符串操作
      • 返回字符串长度
      • 截取字符串
      • 查询字符
      • 正则表达式
  • cut 关键字方式
      • 获取 第三行数据
      • 分割的方式
      • 提取后面4个字符

变量

俩种方式

第一种方式

直接输出的方式
=前后不能有空格

age=0
echo $age

在这里插入图片描述

第二种方式

变量不能直接修改

declear -r age=20
echo $age
age=30

在这里插入图片描述

declare -i cc=qq
cc=000
echo $cc

发现修改变量为0发现变量不能被修改
在这里插入图片描述

declare +i xx=www
xx=cc
echo $xx

发现变量可以被修改的方式
在这里插入图片描述

取消变量

name=tiantian
unset name
echo $name

在这里插入图片描述

数组

创建数组

arr=(1,2,3,4)
echo $arr

获取数组元素的方式

arr[下标]

arr[0]

read输出的方式

read -p "请输入的方式" name
echo $name

限制输入的方式

read -t 5 -sp "请输入密码" name
echo $name

流程控制方式

for循环输出的方式

第一种方式

for i in 1 2 3
doecho $i
done

第二种方式

for i in {1..4}
doecho $i
done

while循环输出的方式

i=1
while((5>i))
doecho $i((i++))
done

select选择输出的方式

select i in 1 2 3 4
doecho $ibreak;
done

在这里插入图片描述

判断方式

判断的四种方式

注意[] 前后必须要有空格

第一种方式

[ 表达式]

a=1
b=2
if [ $a = $b ]
thenecho "相等"
elseecho "不想等"
fi
第二种方式

[[ 表达式 ]]

a=1
b=2
if [[ $a = $b ]]
thenecho "相等"
elseecho "不想等"
fi
第三种方式
a=1
b=2
if [[ $a == $b ]]
thenecho "相等"
elseecho "不想等"
fi

算术的方式

算术运算符号

result=`expr 1 + 1`
echo $result
result01=`expr 10 / 2`
echo $result01
result02=`expr 10 % 2`
echo $result02

算术第二种方式

(())

echo $((5+1))
echo $((5*2))
echo $((5%2))

字符串操作

返回字符串长度

expr length "xxxx"

截取字符串

截取1到3个字符

expr substr "qqqq" 1 3

查询字符

expr index 字符串 查询字符

expr index "xxxqxx" "q"

正则表达式

expr match 字符串 正则表达式

expr match "xxacc" "/[A-Z]/g"

cut 关键字方式

文本的截取的方式

获取 第三行数据

cut -f 3 book.txt

分割的方式

cut book.txt -d , -f 1

提取后面4个字符

cut book.txt -c 4-
http://www.lryc.cn/news/365185.html

相关文章:

  • 前端面试项目细节重难点(已工作|做分享)想(八)
  • Loguru,一个 Python 日志神器
  • C++ 反转单词
  • Apache Doris 基础 -- 数据表设计(表索引)
  • 资源描述框架的用途及实际应用解析
  • 工业级物联网边缘网关解决方案-天拓四方
  • 认识微服务,认识Spring Cloud
  • 电脑设置密码怎么设置?让你的电脑更安全!
  • 搜维尔科技:SenseGlove Nova2使用主动接触反馈来模拟手掌的感觉,结合力反馈和振动触觉反馈,使其成为市场上第一款具有手掌反馈的无线触觉手套
  • 基于Python的实验室管理系统的设计与实现(论文+源码)_kaic
  • Windows系统WDS+MDT网络启动自动化安装
  • Apple开发者证书创建完整过程
  • for深入学习
  • 引用(C++)和内联函数
  • 【stm32/CubeMX、HAL库】swjtu嵌入式实验七 ADC 实验
  • springboot 解耦、隔离、异步的原则以及实战
  • 设计模式详解(八):外观模式——Facade
  • R语言绘图 | 双Y轴截断图
  • 使用PNP管控制MCU是否需要复位
  • 二重,三重积分和曲面,曲线积分的关系和区别
  • 处理STM32 DMA方式下的HAL_UART_ERROR_ORE错误
  • 初学者如何对大模型进行微调?
  • 【Qt知识】disconnect
  • String,StringBuffer,StringBuilder的区别?
  • vue基础知识点
  • 正则表达式三
  • MYSQL数据库细节详细分析
  • vue 将图片url转base64
  • Unity之XR Interaction Toolkit如何使用XRSocketInteractable组件
  • flutter3-os:基于flutter3.x+dart3+getx手机版os管理系统