码迷,mamicode.com
首页 > 系统相关 > 详细

linux shell习题

时间:2018-11-19 12:40:49      阅读:523      评论:0      收藏:0      [点我收藏+]

标签:done   子目录   监控   ext   substr   code   之间   bin   记录   

课件地址: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===============\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

 

linux shell习题

标签:done   子目录   监控   ext   substr   code   之间   bin   记录   

原文地址:https://www.cnblogs.com/xkxf/p/9982133.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!