2014马哥Linux0218-4中script.sh的题目

这道题目虽然不是很难,但是如果编程不熟练的话,还是有些挑战的。在这里感谢我搜索到的这位朋友,他的解题代码给我很大的参考,他的blog是:http://sohudrgon.blog.51cto.com/3088108/1586780/

写一个脚本,完成如下任务,其使用形式如下所示:

script.sh {start|stop|restart|status}

其中:

如果参数为空,则显示帮助信息,并退出脚本;

如果参数为start,则创建文件/var/lock/subsys/script,并显示“starting script successfully.”

如果参数为stop,则删除文件/var/lock/subsys/script,并显示“stop script successfully.”

如果参数为restart,则删除文件/var/lock/subsys/script并重新创建,而后显示“Restarting script successfully.”

如果参数为status,那么:

如果文件/var/lock/subsys/script存在,则显示“Script is running...”,否则则显示“Script is stopped.”

#!/bin/bash

#

shName=`basename $0`

fileName="/var/lock/subsys/$shName"

if [ $# -ne 1 ];then

echo "Usage:$shName {start|stop|restart|status}"

echo "Please try again."

exit 3

fi

if [ "$1" == "start" ];then

if ! [ -e $fileName ];then

touch $fileName && echo "Starting $fileName successfully."

else

echo "$fileName already exists, try again." && exit 4

fi

elif [ "$1" == "stop" ];then

if [ -e $fileName ];then

rm -fv $fileName && echo "Stop $fileName successfully."

else

echo "$fileName does not exist, try again." && exit 4

fi

elif [ "$1" == "restart" ];then

if [ -e $fileName ];then

rm -fv $fileName

touch $fileName && echo "Restarting $fileName successfully."

else

touch $fileName

echo "Restarting $fileName successfully."

fi

elif [ "$1" == "status" ];then

if [ -e $fileName ];then

echo "$shName is running."

else

echo "$shName is stopped."

fi

else

echo "Usage:$shName {start|stop|restart|status}"

echo "Please try again."

exit 3

fi

时间: 2024-10-06 20:09:18

2014马哥Linux0218-4中script.sh的题目的相关文章

2014马哥Linux0218-4前半部文件测试的题目

写一个下载程序: 1.首先判断wget是否存在,不存在就退出:有就执行下一步. 2.然后判断用户是否有wget的执行权限,如没有则退出,如有就执行下载. #!/bin/bash # url="http://172.16.0.1/centos6.5.repo" which wget &> /dev/null || exit 5 downloader=`which wget` [ -x $downloader ] || exit 6 $downloader $url 这里有一

2014马哥Linux0217中对0214三题的解答

前几天在做2014马哥Linux0214的作业的时候,发现其实这三题在0217中有解答,当然觉得马哥比自己写得好太多,所以忍不住要把马哥的答案贴出来,以供自己学习. 第一题:写一个脚本,用for循环实现显示/etc/init.d/functions./etc/rc.d/rc.sysinit./etc/fstab有多少行 #!/bin/bash for fileName in /etc/init.d/functions /etc/rc.d/rc.sysinit /etc/fstab;do line

2014马哥Linux0218-4中shift轮替和最后一道大题

写一个脚本,使得无论脚本后跟多少参数,都能计算出参数的和: #!/bin/bash sum=0 for i in `seq 1 $#`;do let sum+=$1 shift done echo $sum 写一个脚本:使用形式如下 userinfo.sh -u username [-v{1|2}] -u选项用于指定用户,而后脚本显示用户的UID和GID; 如果同时使用了-v选项: -v后面的值如果是1,则额外显示用户的家目录路径 -v后面的值如果是2,则额外显示用户的家目录路径和shell #

2014马哥Linux0214中关于系统启动加载环境变量的顺序问题

0214中,基于CentOS6.4,马哥说交互式用户环境变量加载顺序,如下: /etc/profile-->/etc/profile..d/*.sh-->~/.bash_profile-->~/.bashrc-->/etc/bashrc 而本人做了一个实验,在以上几处都加上了echo语句,测试到底顺序是怎样的,得到了如下的结果: /etc/profile-->/etc/profile..d/*.sh-->/etc/bashrc-->~/.bashrc-->~

2014马哥Linux0217-4中LineCount的小程序补完版

上一篇因为没学会字符测试,所以写的文件数行脚本,运行起来并不是那么完美,看完0218-1课后,修改代码成如下,基本没有不理想的状态发现了: #!/bin/bash # read -t 10 -p "Please enter a file path in 10 seconds:" fileName #超时设置成10秒 fileName=${fileName:-null} #变量默认值的设定 if [ "$fileName" == null ];then #字符测试的语

2014马哥Linux0218-1字符测试与生成交互式选项表的脚本代码

0218课里,先是一个简单的小程序,注意字符测试的使用,建议所有被测试的字符都要加引号,而在字符测试匹配模式(也可以使正则表达式)的时候,需要用双中括号,题目如下: 练习:判定所有用户是否拥有可登陆shell #!/bin/bash for userName in `cut -d: -f1 /etc/passwd`;do if [[ `grep "^$userName\>" /etc/passwd | cut -d: -f7` =~ sh$ ]]; then echo "

马哥-51CTO-Linux培训中-作业3

练习1:在/tmp 下新建x_m, x_n, y_m, y_n目录 mkdir -pv /tmp/{x_,y_}{m,n}    说明:-p 如果没有父目录则创建父目录. -v 显示创建过程. 练习2: 1)显示/etc/目录下,以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录 ls /etc/[^a-z][a-z]*    说明:^表示取反,方括弧中字母范围是不区分大小写的.如果题目改为以大写字母开头,后面跟 了一个字母及其它任意长度任意字符的文件或目录,则命令语句可变为: l

马哥linux运维初级+中级+高级 视频教程 教学视频 全套下载(近50G)

马哥linux运维初级+中级+高级 视频教程 教学视频 全套下载(近50G)目录详情:18_02_ssl协议.openssl及创建私有CA18_03_OpenSSH服务及其相关应用09_01_磁盘及文件系统管理详解之三10_05_脚本编程之八 脚本完成磁盘分区格式化20_01_DNS主从复制及区域传送04_04_grep及正则表达式01_03_操作系统基础08_02_bash脚本编程之七 case语句及脚本选项进阶14_03_bash脚本编程之十一(Linux启动流程之三) SysV服务脚本01

马哥linux 2014中秋狂欢喜,答题送大礼!

    聆听大师声音 追随智者脚步     又是一个扬帆起航的黄金九月,九月对每一个运维人来说既是自己职业生涯规划的一次挑战,与此同时也是一个逆转僵局的机会,恰逢中秋佳节,马哥linux为答谢新老朋友的一路的陪伴,支持和厚爱,特推出一份厚礼-->答题赢大礼!让我们在知识和挑战中度过一个与众不同的中秋. 如何参与答题: 1.联系我们的客服人员:1661815153和2813150558索要答题邀请码 2.进行习题测试并截图保存结果小窗我们的客服人员领取相应奖励 3.每人仅限一次答题机会,作弊者将取