




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Linux Shell编程基础 授课:杨建新 脚本编程 传统的DOS批处理文件(*.bat) Windows脚本: vbscript(*.vbs) Javascript(*.js) Unix Shell脚本 指定脚本执行所使用的shell 如果Script的第一个非空字符不是“#“, 则它会使用Bourne Shell。 如果Script的第一个非空字符是“#“时, 但不以“#!“开头时,则它会使用C Shell 。 如果Script以“#!”开头,则“#!”后面 所写的就是所使用的Shell,而且要将整 个路径名称指出来 * 建议使用第3种方法 执行shell脚本程序的方法 shellname scriptname . scriptname 在shell中使用变量 Bourne Shell的变数类型只有字串变量 ,所以要使用数值运算则必须靠外部命令 达到目的 变量主要包括用户变量和系统变量两类 为变量赋值: var=string 取用变量时则在变量名称前加上一 “$” 号 如果需要处理数值运算,可以使用expr命 令 expr用法 expr一般用于整数值计算,常用于程序计 数器,实例如下: expr 10 + 10 expr 10 * 10 expr 30 / 10 常用系统变量 $HOME 使用者自己的目录 $PATH 执行命令时所搜寻的目录 $TZ 时区 $MAILCHECK 每隔多少秒检查是否有新的 信件 $PS1 在命令列时的提示号 $PS2 当命令尚未打完时,Shell 要求 再输入时的提示号 $MANPATH man 指令的搜寻路径 实例1 #!/bin/sh name=yang echo $name echo $PATH PATH=$PATH:$HOME/bin echo $PATH i=0 i=expr $i + 3 echo $i 使用特殊变量 $0 这个程序的执行名字 $n 这个程序的第n个参数值,n=19 $* 这个程序的所有参数 $# 这个程序的参数个数 $ 这个程序的PID $! 执行上一个背景指令的PID $? 执行上一个指令的返回值 使用shift 命令可以将参数后移 实例2:testvar #!/bin/sh echo Filename: $0 echo Arguments: $* echo Number of args.: $# echo 2nd arg.: $2 shift echo Number of args.: $# echo 2nd arg.: $2 set hello, world echo Arguments: $* echo 2nd arg.: $2 执行sh testvar this is my shell script 获取用户输入 使用read命令可以获取用户的输入并赋予 变量 read var1 var2. 实例3 #!/bin/sh echo Please input your name: read name echo Your name is:$name 条件测试 测试文件状态 -d:目录 -s:文件非空 -f:正规文件 -w:可写 -L:符号链接 -u:文件有suid位 -r:可读 -x:可执行 条件测试 比较表达式 -eq =字符串: -ne != -gt -n:非空串 -lt= 条件测试 逻辑操作 -a, ; *) command. ; esac 实例4 #!/bin/sh until echo List Directory1 echo Change Directory2 echo Edit File.3 echo Remove File.4 echo Exit Menu.5 echo Please input your choice: read choice test $choice = 5 do case $choice in 1) ls; 2) echo Enter target directory read dir cd $dir ; 3) echo Enter file name read file vi $file ; 4) echo Enter file name read file rm $file ; q|Q|5) echo Goodbye exit ; *) echo illegal Option esac done 流程控制:循环结构 for循环: for var in list do commands. done while循环: while condition do commands. done 流程控制:循环结构 until循环: until condition-is-true do commands. done 循环控制:break, continue break:跳出循环或case语句 continue:跳过本次循环 实例5 #!/bin/sh number=1 while $number -le 10 do useradd user$number echo Add a user whose name is:user$number number=expr $number + 1 done 建立10个用户帐户 实例6 #!/bin/sh counterf=0 counterd=0 for files in * do if -f $files ;then counterf=expr $counterf + 1 elif -d $files ;then counterd=expr $counterd + 1 fi done ech
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年精准营销行业大数据处理与预测报告
- 探究2025年环保产业园循环经济发展模式下的产业集聚与绿色发展策略报告
- 2025年工业互联网平台计算机视觉缺陷检测技术行业应用案例研究报告
- 拆迁安置房屋二手交易合同范文
- 2025年新型配电变压器项目深度研究分析报告
- 餐桌凳面采购合同7篇
- 货运平板车租赁合同5篇
- 工程项目担保合同5篇
- 保管合同和有偿合同7篇
- 资产抵债协议书范本与资产抵债合同10篇
- 涂装工考试:中级涂装工考点(三)
- 医院重症监护室感染监控指南
- 2024年高中英语衡水体书法练字字帖
- 融资融券实务
- 人教版二年级下册口算题天天练1000道可打印带答案
- 2022北京东城六年级毕业考英语试题含答案
- 《药物分析与检验技术》课件-异烟肼中游离肼的检查方法
- 手术室的健康教育
- 海水的淡化技术及应用
- 食堂餐饮服务方案
- 中职学校设计说明
评论
0/150
提交评论