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