文章目录
- 实验九:Shell流程控制语句
- 实验目的:
- 实验内容:
- 操作步骤:
- 1. 复制`*.c`文件并排序
- 2. 计算1-10的平方
实验九:Shell流程控制语句
实验目的:
- 掌握条件判断语句,如if语句、case语句。
- 掌握循环控制语句,如for语句、while语句、until语句。
实验内容:
- 编写一个Shell脚本,利用for循环把当前目录下的所有
*.c
文件复制到指定的目录中,并显示复制后该目录内按文件大小排序的目录文件清单。 - 使用until语句创建一个Shell程序,其功能为计算1-10的平方。
操作步骤:
1. 复制*.c
文件并排序
Shell脚本内容:
#!/bin/bash
# 定义目标目录
TARGET_DIR="/path/to/destination"
# 创建目标目录如果它不存在
mkdir -p "$TARGET_DIR"
# 遍历当前目录下的所有.c文件
for FILE in *.c; do
# 复制文件到目标目录
cp "$FILE" "$TARGET_DIR"
done
# 显示目标目录内按文件大小排序的文件清单
echo "文件清单(按大小排序):"
ls -lSh "$TARGET_DIR" | sort -h
执行步骤:
- 将上述脚本保存为
copy_and_sort.sh
。 - 赋予执行权限:
chmod +x copy_and_sort.sh
。 - 执行脚本:
./copy_and_sort.sh
。
描述:
-
mkdir -p "$TARGET_DIR"
: 创建目标目录(如果不存在)。 -
for FILE in *.c; do ... done
: 遍历当前目录下的所有.c
文件。 -
cp "$FILE" "$TARGET_DIR"
: 将每个.c
文件复制到目标目录。 -
ls -lSh "$TARGET_DIR" | sort -h
: 显示目标目录内按文件大小排序的文件清单。
2. 计算1-10的平方
Shell脚本内容:
#!/bin/bash
# 使用until循环计算1-10的平方
i=1
until [ $i -gt 10 ]; do
echo "$i 的平方是 $(( $i * $i ))"
((i++))
done
执行步骤:
- 将上述脚本保存为
squares.sh
。 - 赋予执行权限:
chmod +x squares.sh
。 - 执行脚本:
./squares.sh
。
描述:
-
i=1
: 初始化计数器变量i为1。 -
until [ $i -gt 10 ]
: 使用until循环直到i大于10。 -
echo "$i 的平方是 $(( $i * $i ))"
: 打印i的平方。 -
((i++))
: i的值每次循环增加1。
实验内容 | 命令 | 描述 |
---|---|---|
复制*.c 文件并排序 |
mkdir -p "$TARGET_DIR" |
创建目标目录(如果不存在) |
for FILE in *.c; do ... done |
遍历当前目录下的所有.c 文件 |
|
cp "$FILE" "$TARGET_DIR" |
将每个.c 文件复制到目标目录 |
|
`ls -lSh “$TARGET_DIR” | sort -h` | |
计算1-10的平方 | i=1 |
初始化计数器变量i为1 |
until [ $i -gt 10 ] |
使用until循环直到i大于10 | |
echo "$i 的平方是 $(( $i * $i ))" |
打印i的平方 | |
((i++)) |
i的值每次循环增加1 |