第三讲 shell语法
- 概论
- 注释
- 变量
关于子进程的情况 - 默认变量
- 数组
- expr命令
- read命令
- echo命令
- printf命令
- test命令与判断符号[]
- 判断语句
- 循环语句
- 函数
- exit命令
- 文件重定向
- 引入外部脚本
常用命令
type + 命令
:可以显示该命令是哪来的。date
:可以用来显示或设定系统的日期与时间。
本题注意:
- 在shell脚本中对文件进行操作时,记得标清路径,这时一般使用变量存储绝对路径;这与在终端中进行操作有点不一样。
- 循环中的
i
等也是变量,记得加${}
符号。 - 至于
homework 1 create
、homework 1 create n
、homework 1 test
与逻辑有关。
本题代码如下:
#! /bin/bash
homework 1 create
homework 1 create 0
homework0=/home/acs/homework/lesson_1/homework_0
for i in dir_a dir_b dir_c
do
mkdir ${homework0}/${i}
done
# *************************************
homework 1 create 1
homework1=/home/acs/homework/lesson_1/homework_1
for i in a b c
do
cp ${homework1}/${i}.txt ${homework1}/${i}.txt.bak
done
# ********************************
homework 1 create 2
homework2=/home/acs/homework/lesson_1/homework_2
for i in a b c
do
mv ${homework2}/${i}.txt ${homework2}/${i}_new.txt
done
# ***************************************
homework 1 create 3
homework3=/home/acs/homework/lesson_1/homework_3
for i in a b c
do
mv ${homework3}/dir_a/${i}.txt ${homework3}/dir_b
done
# ******************************************
homework 1 create 4
homework4=/home/acs/homework/lesson_1/homework_4
rm ${homework4}/*.txt
# **********************************************
homework 1 create 5
homework5=/home/acs/homework/lesson_1/homework_5
rm ${homework5}/dir_* -r
# **********************************************
homework 1 create 6
homework6=/home/acs/homework/lesson_1/homework_6
mkdir ${homework6}/dir_a
mv ${homework6}/task.txt "${homework6}/dir_a/done.txt"
# ************************************************
homework 1 create 7
homework7=/home/acs/homework/lesson_1/homework_7
for i in 0 1 2
do
mkdir ${homework7}/dir_${i}
for j in a b c
do
cp ${homework7}/${j}.txt ${homework7}/dir_${i}/${j}${i}.txt
done
done
# *************************************************
homework 1 create 8
homework8=/home/acs/homework/lesson_1/homework_8
rm ${homework8}/dir_a/a.txt
mv ${homework8}/dir_b/b.txt ${homework8}/dir_b/b_new.txt
cp ${homework8}/dir_c/c.txt ${homework8}/dir_c/c.txt.bak
# ************************************************
homework 1 create 9
homework9=/home/acs/homework/lesson_1/homework_9
rm ${homework9}/*.txt
# *************************************************
homework 1 test