Shell脚本编程基础知识.ppt

  1. 1、本文档共74页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
idcheck.sh #!/bin/bash # Scriptname: idcheck.sh # purpose: check user id to see if user is root. # Only root has a uid of 0. # Format for id output: uid=501(tt) gid=501(tt) groups=501(tt) # root’s uid=0 : uid=0(root) gid=0(root) groups=0(root)… # id=`id | awk -F[=(] {print $2}` # get user id echo your user id is: $id if (( id == 0 )) # [ $id -eq 0 ] then echo you are superuser. else echo you are not superuser. fi 第二十九页,编辑于星期三:一点 十一分。 语法结构 case expr in # expr 为表达式,关键词 in 不要忘! pattern1) # 若 expr 与 pattern1 匹配,注意括号 commands1 # 执行语句块 commands1 ;; # 跳出 case 结构 pattern2) # 若 expr 与 pattern2 匹配 commands2 # 执行语句块 commands2 ;; # 跳出 case 结构 ... ... # 可以有任意多个模式匹配 *) # 若 expr 与上面的模式都不匹配 commands # 执行语句块 commands ;; # 跳出 case 结构 esac # case 语句必须以 esac 终止 case 选择语句 第三十页,编辑于星期三:一点 十一分。 case 语句举例:yes_no.sh 几点说明 每个命令块的最后必须有一个双分号,可以独占一行,或放在最后一个命令的后面。 所给的匹配模式 pattern 中可以含有通配符和“ | ”。 如果 expr 没有找到匹配的模式,则执行缺省值 “ *) ” 后面的命令块 ( 类似于 if 中的 else ); “ *) ” 可以不出现。 表达式 expr 按顺序匹配每个模式,一旦有一个模式匹配成功,则执行该模式后面的所有命令,然后退出 case。 第三十一页,编辑于星期三:一点 十一分。 yes_no.sh #!/bin/bash # test case # scriptname: yes_no.sh # echo -n Do you wish to proceed [y/n]: read ans case $ans in y|Y|yes|Yes) echo yes is selected ;; n|N|no|No) echo no is selected ;; *) echo `basename $0`: Unknown response exit 1 ;; esac 第三十二页,编辑于星期三:一点 十一分。 语法结构 for variable in list # 每一次循环,依次把列表 list 中的一个值赋给循环变量 do # 循环开始的标志 commands # 循环变量每取一次值,循环体就执行一遍 done # 循环结束的标志 几点说明 列表 list 可以是命令替换、变量名替换、字符串和文件名列表 ( 可包含通配符 ) for 循环执行的次数取决于列表 list 中单词的个数 for 循环体中一般要出现循环变量,但也可以不出现 for 循环语句 第三十三页,编辑于星期三:一点 十一分。 执行第一轮循环时,将 list 中的第一个词赋给循环变量,并把该词从 list 中删除,然后进入循环体,执行 do 和 done 之间的命令。下一次进入循环体时,则将第二个词赋给循环变量,并把该词从 list 中删除,再往后的循环也以此类推。当 list 中的词全部被移走后,循环就结束了。 循环执行过程 forloop.sh,mybackup.sh 位置参量的使用: $* 与 $@ greet.sh 可以省略 in list ,此时使用位置参量 permx.sh idcheck.sh greet.sh yes_no.sh permx.sh *.sh for 循环执行过程 第三十四页,编辑于星

文档评论(0)

GCG19881010 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档