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

shell编程(6)(7)

目录

一、if条件判断

基本if语句

if单行写法

if-else语句

if-elif-else语句

条件判断中的比较操作符

使用(( ... ))进行数值比较

示例

二、for循环

基本for循环

for循环单行写法

示例

for循环与命令行参数

for循环与序列

C风格的for循环

注意事项

三、while循环

基本while循环

while循环单行写法

示例

示例1:使用while循环读取用户输入

示例2:使用while循环处理数字序列

注意事项


声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章

声明:本文主要用作技术分享,所有内容仅供参考。任何使用或依赖于本文信息所造成的法律后果均与本人无关。请读者自行判断风险,并遵循相关法律法规。

一、if条件判断

首先用vim打开一个脚本k.sh

vim k.sh

#定义变量
a=10
b=20
#进行条件判断
if [ "$a" -eq "$b" ];then
    echo "a=b"
elif [ "$a" -gt "$b"];then
    echo "a>b"
else
    echo "没有符合上述条件"
fi

基本if语句

if condition
then
    command1
    command2
    ...
    commandN
fi
  • condition:条件表达式,如果条件为真(返回状态码0),则执行then部分的命令。

  • command1 command2 ... commandN:当条件为真时执行的一系列命令。

  • fi:结束if语句。

if单行写法

if [ $(ps -ef | grep -c "bash") -gt 1 ]; then echo "true"; fi
  • $(...):命令替换,执行括号内的命令,并将输出替换到当前位置。

  • [...]:条件测试,用于判断括号内的表达式是否为真。

if-else语句

if condition
then
    command1
    command2
    ...
    commandN
else
    command
fi
  • else:如果条件为假(返回状态码非0),则执行else部分的命令。

if-elif-else语句

if condition1
then
    command1
elif condition2
then 
    command2
else
    commandN
fi
  • elif:如果condition1为假,则会检查condition2,以此类推,直到找到第一个为真的条件。

条件判断中的比较操作符

  • >:大于,使用-gt。

  • <:小于,使用-lt。

  • ==:等于,使用-eq。

  • !=:不等于,使用-ne。

使用(( ... ))进行数值比较

if (( a > b )); then
    echo "a is greater than b"
fi
  • 在(( ... ))中,可以直接使用>和<进行数值比较。

示例

for i in 1 2 3 4 5
do 
    echo "the var is $i"
done

这段代码会依次打印出:

the var is 1
the var is 2
the var is 3
the var is 4
the var is 5

二、for循环

基本for循环

for var in item1 item2 ... itemN
do
    command1
    command2
    ...
    commandN
done
  • var:循环变量,用于存储当前迭代的值。

  • item1 item2 ... itemN:一个序列或列表,var将依次取这些值。

  • command1 command2 ... commandN:每次迭代执行的命令序列。

  • do和done:分别标记for循环的开始和结束。

for循环单行写法

for var in item1 item2 ... itemN; do command1; command2... done;

示例

for i in 1 2 3 4 5
do 
    echo "the var is $i"
done

这段代码会依次打印出:

the var is 1
the var is 2
the var is 3
the var is 4
the var is 5

for循环与命令行参数

for循环还可以使用命令行参数:

for var in "$@"
do
    command
done

在这个例子中,$@代表所有传递给脚本的参数,var将依次取这些参数的值。

for循环与序列

for循环可以与序列一起使用,例如:

for i in {1..5}
do
    echo "Number $i"
done

这将打印:

Number 1
Number 2
Number 3
Number 4
Number 5

C风格的for循环

在某些Shell(如Bash)中,也可以使用C风格的for循环:

for ((i=0; i<5; i++))
do
    echo "Number $i"
done

这将打印:

Number 0
Number 1
Number 2
Number 3
Number 4

注意事项

  • for循环中的命令可以是任何有效的Shell命令或语句。

  • in列表可以包含替换、字符串和文件名。

  • 如果in列表被省略,for循环将使用命令行的位置参数。

三、while循环

基本while循环

while condition
do
    command1
    command2
    ...
    commandN
done
  • condition:条件表达式,只要这个条件为真,循环就会继续执行。

  • command1 command2 ... commandN:只要条件为真,这些命令就会被重复执行。

  • do和done:分别标记while循环的开始和结束。

while循环单行写法

while condition; do command1; command2... done

示例

示例1:使用while循环读取用户输入
echo "Enter 'q' to quit."
while read -r input
do
    if [[ "$input" == "q" ]]; then
        break
    fi
    echo "You entered: $input"
done

这个循环会不断读取用户输入,直到用户输入q。

示例2:使用while循环处理数字序列
i=0
while [ $i -lt 5 ]
do
    echo "Number $i"
    ((i++))
done

这个循环会打印数字0到4。

注意事项

  • condition可以是任何命令或表达式,只要它返回状态码0,循环就会继续。

  • 使用break命令可以提前退出循环。

  • 使用continue命令可以跳过当前迭代,继续执行下一次循环。

  • 确保循环有一个明确的退出条件,否则可能会造成无限循环。


http://www.kler.cn/a/408720.html

相关文章:

  • 基于STM32的火灾报警装置的Proteus仿真
  • web-03
  • 利用c语言详细介绍下插入排序
  • SpringBoot 集成 html2Pdf
  • JavaScript数据类型判断之Object.prototype.toString.call() 的详解
  • key-value存储实现
  • EdgeNeXt:面向移动视觉应用的高效融合CNN-Transformer架构
  • 微信小程序开发指南:从基础到进阶
  • 在Windows环境下打包Qt C++项目为独立可执行文件的完整指南
  • 传智杯 3-初赛:终端
  • 关于springboot中使用AOP方式记录日志的思路和灵感
  • Python/GoLang/Java 多环境管理工具 pyenv/goenv/jenv
  • 16:(标准库)ADC三:使用外部触发启动ADC/模拟看门狗
  • CTF之密码学(Polybius密码)
  • 241124_基于MindSpore学习GPT2
  • C++ std::unique_ptr的使用及源码分析
  • 【Spring源码核心篇-03】精通spring的aop的底层原理和源码实现
  • c++(入门)
  • 群核科技首次公开“双核技术引擎”,发布多模态CAD大模型
  • 从零开始:使用 Spring Boot 开发图书管理系统
  • pip 与当前python环境版本不匹配, pyenv, pipenv, conda
  • 速盾:海外服务器使用CDN加速有什么优势?
  • [Python3学习笔记-基础语法] Python3 基础语法
  • Excel如何批量导入图片
  • UE5中T_noise 纹理的概述
  • 前端把dom页面转为pdf文件下载和弹窗预览