【Linux实践】实验九:Shell流程控制语句

实验目的

1、掌握条件判断语句,如if语句、case语句。
2、掌握循环控制语句,如for语句、while语句、until语句。

实验内容

1、编写一个Shell脚本,利用for循环把当前目录下的所有*.c文件复制到指定的目录中,并显示复制后该目录内按文件大小排序的目录文件清单。
2、使用until语句创建一个Shell程序,其功能为计算1-10的平方。

实验步骤及结果

1. 变量的定义和使用

  • 定义变量:变量名=值
  • 使用变量:$变量名
  • 只读变量:readonly 变量名
  • 删除变量:unset 变量名

2. 条件

  • 条件可以通过直接调用 test 命令或使用方括号 [ ] 来编写,如果用[ ] 必须注意要有空格。
  • 下面两个条件语句的结果是一样的
    • if test $AM -gt 150
    • if [ $AM -gt 150 ]

3. 运算

  • $(( ... )) 是一种用于进行算术运算的语法,但仅支持整数运算。

    • 加法:sum=$((a + b))
    • 自增加1:count=$((count + 1))
    • 另外一种自增写法:((count++))
  • 如果需要浮点运算,可以使用 bc 或其他工具。

  • expr 也是一个用于计算表达式的命令行工具,可以进行整数运算、字符串操作等。

    • 自增加1:count=$(expr $count + 1)

    • 计算字符串长度:expr length "Hello"

4. if 语句

  • 基本语法

    if [ 条件 ]; then
        # 条件为真时执行的代码
    fi
    
  • 双分支

    if [ 条件 ]; then
        # 条件为真时执行的代码
    else
        # 条件为假时执行的代码
    fi
    
  • 多分支

    if [ 条件 ]; then
        # 条件为真时执行的代码
    elif [ 其他条件 ]; then
        # 其他条件为真时执行的代码
    else
        # 所有条件都不满足时执行的代码
    fi
    

5. case 语句

  • case 语句用于多重选择的一种控制结构,类似于其他编程语言中的 switch 语句。
case 变量名 in
    匹配1)
        # 命令1
        ;;
    匹配2)
        # 命令2
        ;;
    *)
        # 默认命令(default)
        ;;
esac

6. for 语句

  • for 语句用于重复执行一组命令,通常根据指定的列表或范围迭代。

  • 基于列表的循环:

    for 变量名 in 列表; do
        # 命令
    done
    
  • 基于范围的循环:

    for ((i=0; i<3; i++)); do
        # 命令
    done
    

7. while 语句

  • 和其他语言一样,在给定条件为真时重复执行。
    while [ 条件 ]; do
        # 命令
    done
    

8. until 语句

  • until 语句用于在条件为假时持续执行某些命令。它的基本结构与 while 循环类似,但逻辑相反。

    until [ 条件 ]; do
        # 当条件为假时执行的代码
    done
    

9. 遍历复制

  • 准备工作:在桌面创建目录1和目录2,在目录1中新建1.c,2.c,3.c
    在这里插入图片描述

  • 在目录1下新建一个shell脚本 autocp
    在这里插入图片描述

  • 编写程序,利用for循环把目录1下的所有 *.c 文件复制到目录2中,显示复制后该目录内按文件大小排序的目录文件清单。
    在这里插入图片描述

  • 执行程序
    在这里插入图片描述

10. 计算平方

  • 准备工作:在桌面创建一个 autoCal 文件
    在这里插入图片描述

  • 使用until语句计算1-10的平方
    在这里插入图片描述

  • 执行程序
    在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iFulling

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值