- 1、本文档共80页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
shell的脚本教程详细讲解(很好)
* #! /bin/sh - fname=/bin/date if (test –f “$fname”) then echo “exist” fi 说明: 在shell程序中经常需要判断所处理的文件是否存在。本程序采用if语句的简单格式测试date文件,如果存在,则显示相关信息,否则退出if语句。 ①判断/bin目录下date文件是否存在 * #! /bin/sh - hour=`date|cut –c 10-11` if test “$hour” –ge 0 –a “$hour” –le 11; then echo “Good morning!” elif test “$hour” –ge 12 –a “$hour” –le 17; then echo “Good afternoon!” else echo “Good evening!” fi 说明:第一个有效语句是将命令执行的结果赋给hour变量,所以用反向单引号。用cut命令从date命令的输出中切割出“小时”信息;这里-c 10-11选项表示只切割10到11列。这个程序使用了if连用格式,也可以使用if完整格式的嵌套形式。 ②根据系统当前的时间向用户输出问候信息 * #! /bin/sh -if test $# -ne 1 thenecho Incorrect number of arguments echo Usage: ifuser usernameelse user=$1 if who | grep –q $user ; then echo $1 user is logged on. exit 0 else echo $1 user is not logged on. exit 1 fifi ③判断用户是否已经在系统中登录 * 说明: (1)由于who | grep $user不是表达式而是命令组合,所以不需要test语句测试;如果命令组合执行成功,即找到指定的用户名则返回码为0;否则为非0。 (2)在这个程序中使用了grep字符串搜索命令和“|”管道命令 (3)用grep 命令–q选项来禁止显示搜索到的信息。 (4)还使用了exit命令,以终止shell程序的执行。exit 0表示程序终止后返回0值,而exit 1表示程序终止后返回非0的值。 * ④简单的菜单功能 #! /bin/sh - clearecho MENUechoecho 1.Find files modified in last 24 hoursecho 2.The free disk spaceecho 3.Space consumed by this userecho 4.Exitecho echo -n Select:read choicecase $choice in1)find $HOME -mtime -1 -print;;2)df;;3)du -s $HOME;;4)exit;;*)echo Invalid optionesac * 说明: (1)本程序菜单的第一项是显示/home目录下,最近24小时内所有修改过的文件。命令中的-1参数是数字“1”,表示一天(24小时)。第二项是检查磁盘空间。第三项是显示/home目录下文件的大小,命令中的-s选项是为了仅显示总计。第四项是退出程序。 (2)为了使程序美观,用echo –n实现输入的选择数字不换行。 (3)输入的数字不在1-4范围内时,显示无效的选项信息。 * #! /bin/sh -for file in *.txtdo leftname=`basename $file .txt` mv $file $leftname.docdone 说明: (1)在Linux系统中不支持mv *.txt *.doc这样的更名命令形式,如果需要将文件成批地更名最好编写一个shell脚本文件。 (2)在for语句的参数列表中使用了“*”通配符。 (3(在程序中用到basename命令,该命令从随后的文件名剥去指定的后缀。 ⑤将当前目录下所有的.txt文件更名 * #! /bin/sh – if test $# -ne 1 then echo “Usage: chuser username” else user=”$1” until who |grep “$user”/dev/null do sleep 300 done echo “$user has
您可能关注的文档
- read引的用和对象的关系,还有值传递.doc
- RCA根本原的因分析法.ppt
- RED HAT LINUX 的命令大全.pdf
- RA的ID设置方法.doc
- REF 542 安装与的调试手册.pdf
- Remot的e详解.pdf
- REST服的务接口文档.doc
- Redmi的ne使用说明.pdf
- RFID中间件和系统体系的结构.ppt
- RFID射频识别系统的构造.docx
- 2023-2024学年广东省深圳市龙岗区高二(上)期末物理试卷(含答案).pdf
- 2023-2024学年贵州省贵阳市普通中学高一(下)期末物理试卷(含答案).pdf
- 21.《大自然的声音》课件(共45张PPT).pptx
- 2023年江西省吉安市吉安县小升初数学试卷(含答案).pdf
- 2024-2025学年广东省清远市九校联考高一(上)期中物理试卷(含答案).pdf
- 广东省珠海市六校联考2024-2025学年高二上学期11月期中考试语文试题.pdf
- 2024-2025学年语文六年级上册第4单元-单元素养测试(含答案).pdf
- 2024-2025学年重庆八中高三(上)月考物理试卷(10月份)(含答案).pdf
- 安徽省安庆市潜山市北片学校联考2024-2025学年七年级上学期期中生物学试题(含答案).pdf
- 贵州省部分校2024-2025学年九年级上学期期中联考数学试题(含答案).pdf
文档评论(0)