1.测试环境变量:HOME,PWD,IFS等

2.测试位置变量:$$,$#,$0,$1,$2,$3,$@,$*,再测试当IFS=‘’和取消IFS时$@和$*的输出

3.使用if和case对“是否选修了Linux课程”的问题做出回答

4.列出当前目录下包含sh文件的详细信息

5.列出1~50之间的奇数

6.计算1+2+…+n

7.统计/etc目录下的文件数和目录数

8.设计一函数使能只列指定目录下的子目录

9.设计一函数能实现向文件追加记录的功能(记录由若干变量构成)

10.监控某个用户是否登陆

11将指定目录下的.txt文件成批量地改名为 .doc

1~2



#!/bin/bash
endl() {
echo -e "=======end===============\n"
}

echo $HOME; endl # => /c/Users/mdzz
echo $PWD; endl # => /c/Users/mdzz/Desktop/2018linux
echo $IFS; endl
echo $$,$#,$0,$1,$2,$3,$@,$*; endl # => 5544,0,exercise.sh,,,,,


2



#!/bin/bash
endl() {
echo -e "=======end===============\n"
}

list="we:are:champion"
ifs_old=$IFS
IFS=$':'
for val in $list
do
echo "n=$val"
done
IFS=$ifs_old; endl

ifs_old=$IFS
IFS=''
echo $@,$*
IFS=$ifs_old
echo $@,$*; endl


3



#!/bin/sh
echo "是否选修了Linux课程"
read yesorno
if [ "$yesorno" = "yes" ]
then
echo "Good."
elif [ "$yesorno" = "no" ]; then
echo "what a pity!"
else
echo "Sorry, $yesorno not recognized. Enter yes or no"
exit 1
fi
exit 0


4~7



#!/bin/bash
#####脚本一######
#输入绝对路径,查找包含.sh结尾的文件及目录输出到file.tmp里
# read -p "请输入要查询的目录:" DIR
# find ${DIR} -name "*.sh" > file.tmp
#!/bin/bash
#####脚本二#####
#输入要查询的目录,如果文件不存在创建文件,如果存在退出
# read -p "请输入要查询的目录:" DIR
# read -p "请输入要创建的文件:" FILENAME
# if [ -d $DIR ];then
# if [ ! -f $FILENAME ];then
# touch $FILENAME
# echo "${FILENAME} 创建成功"
# else
# echo "${FILENAME} 文件已经存在"
# exit 0
# fi
# else
# echo "指定的目录不存在!"
# fi

DIR=`ls -l`
# echo $DIR
ls -l *.sh

echo {1..50..2} # 罗列1 ~50的奇数

# 求 1+2+3+..+n
read -p "请输入数字n;" N
sum=0
for ((i=1; i<=$N; i++));do
sum=$(($i+$sum))
done
echo $sum

#统计当前目录文件数和目录数
FILE_NUM=`find ./ -type f |wc -l` #统计文件数
DIR_NUM=`find ./ -type d |wc -l` #统计目录数
echo $FILE_NUM
echo $DIR_NUM


11



#!/bin/bash
for file in `ls | grep .txt`
do
NEW_FILE=`echo $file`
# ${string/substring/replacement} # substring可以是正则表达式
NEW_FILE=${NEW_FILE/.txt/.doc}
mv $file $NEW_FILE
done