第四章 Shell及Shell编程

上传人:飞*** 文档编号:54640113 上传时间:2018-09-16 格式:PPT 页数:52 大小:121.50KB
返回 下载 相关 举报
第四章 Shell及Shell编程_第1页
第1页 / 共52页
第四章 Shell及Shell编程_第2页
第2页 / 共52页
第四章 Shell及Shell编程_第3页
第3页 / 共52页
第四章 Shell及Shell编程_第4页
第4页 / 共52页
第四章 Shell及Shell编程_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《第四章 Shell及Shell编程》由会员分享,可在线阅读,更多相关《第四章 Shell及Shell编程(52页珍藏版)》请在金锄头文库上搜索。

1、2003年 余晓制作 版权所有,第四章 Shell及Shell编程,2003年 余晓制作 版权所有,第一节 Shell的基本概念,一.Shell的基本功能,通配符 * ? ,2003年 余晓制作 版权所有,二. UNIX系统中的标准流,命令处理中的数据信息流 UNIX中的3个标准文件(信息流标准)文件描述 标准定义文件 默认实际对象0 标准输入stdin 键盘1 标准输出stdout 终端显示器2 标准错误stderr 终端显示器,2003年 余晓制作 版权所有,第二节 Shell的命令解释功能,一. Shell命令解释程序的执行过程:,2003年 余晓制作 版权所有,二. 输入/输出的重定向

2、,为什么需要重定向输入/输出? 输入重定向的格式命令 文件,例:%Mail letter$cat 文件 格式3:命令 文件 格式2(包括stderr):命令 & 文件输入输出重定向结合使用: 格式:命令 输出文件,例:% date dir1,例:% ls -l dir1,例:$ls a.c & log,2003年 余晓制作 版权所有,三. 管道线的处理,用管道线“|”将命令隔开,实现将一个程序(或命令)的输出作为另一程序(命令)的输入。,例:$cat sample.txt | grep “High” |wc -l,命令 | more,2003年 余晓制作 版权所有,四. 命令中其他常用特殊字

3、符,2003年 余晓制作 版权所有,五. 三通管道命令,从标准输入中读取,写到标准输出中和文件中。 例:$ ps -ef | tee proc.log六.命令替换 格式:命令1 命令2 功能:将命令2的输出作为命令1的参数。 例:$cd pwd,2003年 余晓制作 版权所有,第三节 用户环境设置,一. 系统如何设置用户的登录环境?,用户登录成功,系统执行环境设置文件/etc/profile,系统执行用户主目录下的.profile文件,ksh、bsh,bash:.bash_profile文件 (.bash_login .profile).bash_bashrc文件.bash_logout.ba

4、sh_history,2003年 余晓制作 版权所有,二. 环境变量 定制用户本身的工作环境,分为两类: 1)永久变量,10-30个,与用户的登录标识相关联,由shell统一维护,随用户的注销而消失; 2)用户的私有环境变量,具有特殊目的,并给用户很大的设置自由度。,2003年 余晓制作 版权所有,三.相关命令,查看环境变量的值:echo $变量名 例:查看当前的shell类型 %echo $SHELL查看所有的环境变量:env清除变量:unset 变量名,2003年 余晓制作 版权所有,设置环境变量 ksh、bsh中的格式: 变量名=值; export 变量名 export命令的作用:将变量

5、自动输出给后继执行命令的环境中。 csh中的格式:setenv 变量名=值 变量设置后的作用期和作用域:在本Shell环境中有效。,2003年 余晓制作 版权所有,四.如何长久修改自己的环境变量?,修改自己主目录下的环境变量配置文件 ksh、bsh中环境变量配置文件.profile .profile 实例 PATH=/usr/bin:/etc:/usr/sbin:/usr/lib:$HOME/bin:/sbin/bin MAIL=/usr/spool/mail/user/ MAILMSG=“you have new mail/a” export PATH MAILPATH MAILMSG ex

6、port TMOUT=200 export PS1=$PWD if test -s “$MAIL”then echo “$MAILMSG” fi set -o ignoreeof set -o vi alias dir=“ls -l”,2003年 余晓制作 版权所有,PATH查询程序的路径 PS1shell的主提示符 PS2shell的第二提示符 MAILPATH用户的电子邮箱路径 SHELLshell程序的路径 PWD当前工作目录 TMOUT无命令输入退出等待时间(秒) TERM终端类型 HOME用户主目录 EDITOR缺省的编辑器 HISTFILE历史命令文件名,环境变量,which命令,

7、vt100,2003年 余晓制作 版权所有,开关选项变量ksh中与 .profile 执行有密切关系的另外两文件: .kshrc文件:存放其它环境变量,由.profile提交执行; .logout文件:存放退出shell时应执行的操作变量,也由.profile提交执行。,2003年 余晓制作 版权所有,csh中的环境变量配置文件 .cshrc文件:用户注册后,每用csh创建一个进程时,系统执行一次此文件; .login文件:用户注册时执行一次,通常存放固定环境变量。,2003年 余晓制作 版权所有,.cshrc文件的示例,# (#)cshrc 1.11 89/11/29 SMI umask 0

8、22 set path=(/bin /usr/sbin /usr/bin /usr/local/bin /usr/ccs/bin /usr/ucb /etc .) setenv LD_LIBRARY_PATH /usr/lib:/usr/local/lib:/usr/ucblib:/usr/openwin/lib setenv EDITOR /bin/vi if ( $?prompt ) thenset history=32 endif alias h history alias rm rm -I,2003年 余晓制作 版权所有,.login文件的示例,stty -istrip # seten

9、v TERM tset -Q - if ( “tty“ = “/dev/console“ ) thenif ( “$TERM“ = “sun“ | “$TERM“ = “AT386“ ) thenif ( $?OPENWINHOME = 0 ) thensetenv OPENWINHOME /usr/openwinendifecho “echo -n “Starting OpenWindows in 5 seconds (type Control-C to interrupt)“sleep 5echo “$OPENWINHOME/bin/openwinclear # get rid of an

10、noying cursor rectanglelogout # logout after leaving windows systemendif endif,2003年 余晓制作 版权所有,csh中的几点注意事项:,1)习惯上将shell 变量的设置和赋值放在 .cshrc中,将环境变量及终端特性放在 .login中; 2)有些变量可在命令行中直接输入,修改原有设置,例: %set path=($path /home/chr/temp) 3)用户修改后的设置文件可用以下命令使其立即起作用: % source .login % source .cshrc,2003年 余晓制作 版权所有,第四节

11、shell程序设计,B shell 的程序设计功能较强。 1. Shell程序的设计与执行 Shell脚本程序:将命令序列组合由系统自动执行。 Shell程序的执行方式: 利用输入输出重定向 例:$ sh book wc -l book lp book,2003年 余晓制作 版权所有,2. Shell变量,Shell变量 以字母开头,由字母、数字及下划线组成Shell变量的赋值 变量名=值 或 c shell赋值:set 变量名=值注: 如果值中含有空格或制表符,需要将值用引号括起; 等号右边也可以是其它Shell变量的引用; bsh中不允许等号两边有空格(csh中无此限制)。,2003年 余

12、晓制作 版权所有,Shell程序中变量值外三种引号的作用: 单引号:其中内容是字符串,没有shell的特殊含义; 双引号“:其中特殊字符作shell 含义解释,其它作字符; 反引号 :其中的命令可作为执行结果进行赋值,例:$ file=report$ echo The time is date,the file is $file 回显: The time is date,the file is $file$echo “The time is date,the file is $file”回显: The time is wed Aug 16 15:11:42 CST 2000,the file

13、is report.,2003年 余晓制作 版权所有,shell变量的引用 在变量名前加“$”;在某些情况下,为明确表示Shell变量的引用可以用大括号将变量引起来。例:% echo $UNIXtm 变量的作用域预定义变量和环境变量,2003年 余晓制作 版权所有,SYSTEM V,2003年 余晓制作 版权所有,第四节 shell程序设计,B shell 的程序设计功能较强。 1. Shell程序的设计与执行 2. Shell变量 Shell变量 Shell变量的赋值 Shell程序中变量值外三种引号的作用 shell变量的引用 变量的作用域 预定义变量和环境变量,2003年 余晓制作 版权

14、所有,位置变量 与C语言类似,shell把输入的命令字符串分解,并给每一段标上号,标号从0开始。这样,每个命令参数(包括命令本身)都有相应的位置变量,它们的引用为$N。,例:$ echoarg.sh first second third( $0) $1 $2 $3,2003年 余晓制作 版权所有,预定义的特殊变量,综合示例,2003年 余晓制作 版权所有,例:test1.sh文件如下:!/bin/shcat $*echo “”cat “$*”,执行结果: $test1.sh f1 f2 cat: f1: No such file or directory cat: f2: No such file or directorycat: f1 f2: No such file or directory,2003年 余晓制作 版权所有,例:test2.sh文件如下:!/bin/shcat $echo “”cat “$”,执行结果: $test1.sh f1 f2 cat: f1: No such file or directory cat: f2: No such file or directorycat: f1: No such file or directory cat: f2: No such file or directory,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号