




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Shell编程学习总结 陈 龙 内容 nShell概述 nShell语法 Shell概述 (特点) oShell是解释性的,多数高级语言是编译性的 ; oShell语言与高级语言处理的对象不同; oShell与系统有密切的关系; oShell易编写、调试、灵活性较强,但速度低 ; oShell作为命令级语言,命令组合功能很强。 Shell概述 (种类) osh - Bourne Shell,是最常用的Shell,标准shell(有 时安装成bsh)。 oksh - Korn Shell,由Bourne Shell通过增加History和 命令行编辑功能演变而来。 osh - POSIX Shell,与Korn Shell相似,是Bourne Shell的高级版本。POSIX标准要求被安装成sh。 ocsh - C Shell,是基于C语言的Shell。 obash - Born Again Shell(bash),是Korn Shell的超 集,又包括不少C Shell语法。但不常用。Redhat Linux 缺省的shell。 otcsh - C Shell的一个版本,包括交互式的命令行编辑 。 ozsh - Z Shell是复杂的,但却具有优良特性的Shell。 它能模拟Korn、C或POSIX Shell。也不常用。 Shell概述 (语法类型) oShell有两种主要语法类型:Bourne和C,彼此 不兼容 nBourne家族:sh ksh bash psh zsh nC 家族:csh tcsh n其中: bash和 zsh在不同程度上支持 csh 的语法 n本文档提到的语法,以bsh为主 Shell概述 (常用命令) o大致划分为以下几类:目录操作与管理、文件操作与管理命令、系统管理 与维护、用户管理与维护、 系统状态、进程管理、通讯命令 、 其它命令 nawk nbcbg ncatchmodchowncpcron ndate dfdiff du nechoexpr nfilefind fg ngrep ninit nkill nln login nlsmail makeman mkdir mkfs mount mv nnohup npg pwdps pr pwd nread rm nsedsortsync ntailtee nwc Shell语法 1. 如果Script的第一个非空白字符不是“#“,则它会使用 Bourne Shell。 2. 如果Script的第一个非空白字符是“#“时,但不以“#!“开 头时,则它会使用C Shell。 3. 如果Script以“#!”开头,则“#!”后面所写的就是所 使用的Shell,而且要将整个路径名称指出来。 建议使用第三种方式指定Shell ,以确保所执行的就是所要 的。Bourne Shell的路径名称为/bin/sh ,而C Shell 则为 /bin/csh。 Shell语法 (变量) 用户自定义变量 特殊变量 系统环境变量 数组变量 Shell语法 (变量) 用户自定义变量 用户定义的变量由字母或下划线打头,由字母、数字或下划线序 列组成,并且大小写字母意义不同。变量名长度没有限制。 在使用变量值时,要在变量名前加上前缀“$” 如果用双引号“”将值括起来,则括起来的字符串允许出现空格 、制表符和换行符的特殊字符,而且允许有变量替换 如果用单引号将值括起来,则括起来的字符串允许出现空格 、制表符和换行符的特殊字符,但不允许有变量替换 引用变量的值时,可以用花括号将变量名称括起来,使变量名 称与它的后续字符分隔开 Shell语法 (变量) 特殊变量 $* 这个程序的所有参数 $# 这个程序的参数个数 $ 这个程序的PID $! 上一个后台指令的PID $? 上一个指令的返回值 Shell语法 (变量) 系统环境变量 /etc/profile:定义系统全局的工作环境,用户主目录下的.profile:定义该用户的工作环 境 主要环境变量有: HOME 用户主目录 PATH 搜索路径 PS1 shell提示符 PWD 用户当前所处的目录 MAIL 邮箱的路径 TERM 使用的终端类型 Shell语法 (变量) 数组变量 在bash中,多个元素的设置方式如下: name=(value1 value2 valuen) array=(a b c d e) 这样:$array0=a $array3=d Shell语法(条件控制) If、then、else语法 if 条件1 then 命令1 elif 条件2 then 命令2 else 命令3 fi 例子: #!/bin/sh if $# -ne 2 ; then echo “Not enough parameters“ exit 0 fi if $1 -eq $2 ; then echo “$1 equals $2“ elif $1 -lt $2 ; then echo “$1 littler than $2“ elif $1 -gt $2 ; then echo “$1 greater than $2“ fi Shell语法(条件控制) case语法 case value in pattern1) command11 command1n; pattern2) command21 command2n; patternn) commandn1 commandnn; esac 例子: #! /bin/sh read op case $op in C) echo “your selection is Copy“ ; D) echo “your selection is Delete“ ; B) echo “your selection is Backup“ ; *) echo “invalide selection“ esac Shell语法(条件控制) for语法 1. for variable in arg1 arg2 argn do command command done 2. for ( 初始值; 限制值; 执行步骤 ) do 程式段 done 例子: #!/bin/bash for DAY in Sunday Monday Tuesday Wednesday Thursday Friday Saturday do echo “The day is : $DAY“ done Shell语法(条件控制) while语法 只要测试条件保持为真时就继续执行。 一旦条件为假,它就终止执行。 while command do command done 例子: #! /bin/sh num=1 while $num -le 10 do square=expr $num * $num echo $square num=expr $num + 1 done until语法 只要测试条件保持为假时就继续执行。 一旦条件为真,它就终止执行。 until condition do command block done #! /bin/sh num=10 until $num -le 0 do square=expr $num * $num echo $square num=expr $num - 1 done Shell语法(计算方法) shell 默认是用来处理字符串的,所以如果你直接运行: echo 1+1 它会直接输出1+1,而不会输出2。 如果需要计算表达式的值,则只需用 “$(” 和 “)”将表达式括起。 echo $(1+1) Shell语法(条件控制) 1.break 是用来打断循环,也就是“强迫结束” 循环。 2.若 break 后面指定一个数值 n 的话,则“从里向外“打断第 n 个循环. 3.默认值为 break 1 ,也就是打断当前的循环。 在使用 break 时需要注意的是, 它与 return 及 exit 是不同的: 1.break 是结束 loop 2.return 是结束 function 3.exit 是结束 script/shell 1.continue是强迫进入下一次循环动作。 2.简单的看成:continue 到 done 之间的句子略过而返回循环顶端. 3.continue 后面也可指定一个数值 n ,以决定继续哪一层(从里向外计算)的循 环,默认值为 continue 1 ,也就是继续当前的循环。 Shell语法(函数) 函数的定义: 函数名 () 命令序列 函数的调用:不带() 函数名 参数1 参数2 shell中是不能直接获得函数的返回值的,如果你要用函数返回值,只能用全局变量传输 。 shell中的变量默认都是全局的,除非你在前面加了local修饰符。 shell会把函数返回值放在$?全局变量中,你可以用$? 来取得前个函数调用的返回值。$* 可以获得函数的所有输入参数,$1表示第一个参数,以此类推。 例子 add() result=0 for n in $* do result=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年广告服务公司业务转让合同范文
- 2025论析劳动合同法对薪酬管理的影响及对策
- 2025年银行信贷部小微企业贷款委托管理合同
- 2025金融公司劳务合同范本
- 2025年政府会计预测题及模拟题库
- 2025年工会安全培训考核题库含答案
- 2025年电力行业新技术应用与发展趋势分析题库
- 农作物品牌农产品直播带货创新创业项目商业计划书
- 农产品化妆品原料提取创新创业项目商业计划书
- 虚拟旅游与远程景点游览创新创业项目商业计划书
- 《学前儿童艺术教育》课件-第一章
- 《导游业务》课程标准
- 山东省青岛市城阳区2024-2025学年下学期期中考试七年级数学试题(含部分答案)
- 呼吸道吸入剂应用科普
- 2025年高考真题-化学(河南卷) 含答案
- 2025至2030中国手持式云台稳定器行业项目调研及市场前景预测评估报告
- 2025至2030年中国紫外线LED行业发展现状及发展趋势预测报告
- 2025年+贵州省中考英语核心高频690词+++
- JG/T 155-2014电动平开、推拉围墙大门
- T/YNIA 003.1-2021面膜护肤用非织造布第1部分:水刺法
- T/CASTEM 1013-2023高校人才代表性科技成果评价指南
评论
0/150
提交评论