课件地址:https://wenku.baidu.com/view/bac2ff10f18583d0496459f3.html
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=============== " } 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=============== " } 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