《UNIX系统的shell课件》由会员分享,可在线阅读,更多相关《UNIX系统的shell课件(39页珍藏版)》请在金锄头文库上搜索。
1、第4章 UNIX系统的shell,1、SHELL的基本功能; 2、SHELL的种类; 3、SHELL命令的解释过程; 4、UNIX系统定义的标准流及重定向方法; 5、SHELL的环境变量及其设置方法; 6、基本的系统配置文件; 7、SHELL变量的设置,了解,了解,理解,理解,掌握,掌握,重点、考点,考点,掌握,1、 SHELL的基本功能,Shell的基本功能 命令的解释执行:接收用户的命令输入、解释分析命令含义、执行用户命令; 环境变量的设置:对用户工作环境进行修改和设定,根据规则选择和设定相关的环境变量; 输入/输出的重定向管理:实现对系统标准流的修改; Shell程序的设计:用户使用sh
2、ell脚本语言完成比较复杂的命令执行过程或用户环境设置过程。,2、shell的种类,Bourne shell:AT export PATH,注意: export后面的变量名前不加$符号; 经export输出给子shell的变量如果在子shell中被修改, 则只影响子shell, 不影响父shell; 如果在子shell中被输出,则只影响子shell的子shell; export命令常用在.profile文件中。,export 示例,rootstu1 no8# ux=UNIX rootstu1 no8# echo $ux UNIX rootstu1 no8# bash rootstu1 no8#
3、 echo $ux rootstu1 no8# exit,rootstu1 no8# export ux rootstu1 no8# bash rootstu1 no8# echo $ux UNIX,7、shell的变量设置,变量置换,变量=$参数变量:-word,变量=$参数变量:=word,变量=$参数变量:?word,变量=$参数变量:+word,如果设置了参数变量,则用参数的值置换变量的值,否则用word置换。即这种变量的值等于某一个参数的值,如果该参数没有设置,则变量就等于word的值。,a=/home/stu word=/root dir=$a:-$word echo dir=$d
4、ir a=$a word=$word,演示,变量置换,变量置换,变量=$参数变量:-word,变量=$参数变量:=word,变量=$参数变量:?word,变量=$参数变量:+word,如果设置了参数变量,则用参数的值置换变量的值,否则把变量设置成word,然后再用word替换参数变量。注意,位置参数不能用于这种方式,因为在shell程序中不能为位置参数赋值。,#a=/home/stu word=/root dir=$a:=$word echo dir=$dir a=$a word=$word,变量置换,变量置换,变量=$参数变量:-word,变量=$参数变量:=word,变量=$参数变量:?w
5、ord,变量=$参数变量:+word,如果设置了参数变量,则用参数的值置换变量的值,否则就显示word并从shell中退出,如果省略了word,则显示标准信息。这种变量要求一定等于某一个参数的值。如果该参数没有设置,就显示一个信息,然后退出,因此这种方式常用于出错指示。,word=/root dir=$a?$word echo dir=$dir a=$a word=$word,rootstu1 unix_2010# ./zhihuan.sh ./zhihuan.sh: line 28: a: /root,变量置换,变量置换,变量=$参数变量:-word,变量=$参数变量:=word,变量=$参
6、数变量:?word,变量=$参数变量:+word,如果设置了参数,则用word置换变量,否则不进行置换。,示例演示,a=/home/stu word=/root dir=$a:+$word echo dir=$dir a=$a word=$word,位置参数变量及预定义变量,由shell在程序运行时设置 共10个变量,从程序名开始依次为0-9,$0,$1,$2,$3,请大家尝试写出sharg.sh的代码,位置参数变量及预定义变量,$0当前shell程序的名字 $1 $9命令行上的第一到第九个参数 $# 命令行上的参数个数 $* 命令行上的所有参数 $ 分别用双引号引用命令行上的所有参数 $ 当
7、前进程的进程标识号(PID) $? 上一条命令的退出状态 $! 最后一个后台进程的进程标识号 系统变量只能引用不能修改!,rootstu1 no8# echo aa bb cc dd $ aa bb cc dd 4251,位置参数变量及预定义变量的示例,当前进程的进程标识号,rootstu1 no8# cat file1 file2 file3 2errlog rootstu1 no8# echo $? 1,非0表示命令运行失败,错误信息errlog文件中,位置参数变量及预定义变量的示例,rootstu1 no8# ./1_shell.sh 1 2 3 hello The following
8、is output of the ./1_shell.sh script: Total number of command line arguments: 4 The first parameter is:1 The second parameter is:2 This is the list of all is parameters: 1 2 3 hello,演示/unix/no8/1_shell.sh,1_shell.sh,echo The following is output of the $0 script: echo Total number of command line arg
9、uments: $# echo The first parameter is:$1 echo The second parameter is:$2 echo This is the list of all is parameters:$* echo $,shell的位置变量,赋值:给位置变量赋值的另一个方法是set命令,例子:5.2_shell.sh,set one two three echo $0 $1 $2 $3 echo date set date echo $4,rootstu1 no11# ./5.2_shell.sh ./5.2_shell.sh one two three 六
10、5月 2 04:38:26 CST 2009 04:38:26,rootstu1 no11# ./3.3_shell.sh a b c this scripts name is ./3.3_shell.sh parameters is 3: a b c,例子:3.3_shell.sh,命令行参数变量的例子,echo this scripts name is $0 echo parameters is $#: $1 $2 $3,4_shell.sh,本章小结,SHELL的基本功能; SHELL的种类; SHELL命令的解释过程; UNIX系统定义的标准流及重定向方法; SHELL的环境变量及其设置方法; 基本的系统配置文件; SHELL变量的设置,