【Linux实践】实验九:Shell流程控制语句
- 实验目的
- 实验内容
- 实验步骤及结果
- 1. 变量的定义和使用
- 2. 条件
- 3. 运算
- 4. if 语句
- 5. case 语句
- 6. for 语句
- 7. while 语句
- 8. until 语句
- 9. 遍历复制
- 10. 计算平方
实验目的
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的平方
-
执行程序