12 第12章 使用shell:变量和选项.pptx 页数:29页 文件大小:543.6 KB 来源: Unix&Linux教程ppt课件 下载课件 (1学习币) {{#tag}} {{#state}}已收藏 {{/state}} {{^state}}请收藏 {{/state}} {{/tag}}
本课件讲解shell中的变量与选项:交互式与非交互式shell的区别、环境与进程中的变量、环境变量与shell变量的分工、变量值的显示与使用,以及用set -o与set +o管理shell选项的方法。
查看本课件的文字版(共 29 页,供检索与复制) 第1页:第12章使用shell:变量和选项 本页为第12章使用shell:变量和选项的章节封面,标示本章讲解的环境变量、shell变量与shell选项。
第2页:本章需要解决的几个问题 交互式shell和非交互式shell有什么区别? 环境中存储有什么类型的变量?什么类型的变量不属于环境? 在Bourne shell家族中,如何是shell变量成为环境变量? 第3页:交互式shell和非交互式shell 交互式程序和非交互式程序-交互式程序指的是与人进行沟通的程序。程序的输入来源与键盘与鼠标,程序的输出发送到显示器上。-非交互式程序指的是独立于人运行的程序。它从文件中获取输入,并将输出写到另一个文件中。 第4页:交互式shell和非交互式shell 交互式shell和非交互式shell-交互式shell指的是以交互式程序方式运行的shell。-非交互式程序指的以交互式程序方式运行的shell。 第5页:12.2环境、进程和变量 定义 进程指的是运行时的程序 环境指的进程运行过程中一组用来存放信息的变量 变量指的一个用来存储数据的实体 第6页:环境、进程和变量:两种变量-shell 两种变量-shell变量-环境变量 变量的4种操作 创建变量 查看变量的值 修改变量的值 销毁变量 第7页:12.2环境、进程和变量:变量的类型 变量的类型 字符串 一维数组 变量、环境和进程的结合-父进程创建子进程后,系统为子进程复制父进程的环境,子进程可以访问父进程的所有环境变量,但子进程对环境变量的修改不会传递到父进程。 第8页:12.3环境变量和shell变量 定义-shell变量是创建它们的shell的局部变量-环境变量是全局变量,使用相同环境的任何进程都可以访问。 变量命名规定-C-Shell家族中,环境变量用大写字母,shell变量用小写字母-Bourne shell家族中,都采用大写字母 第9页:环境变量和shell变量:环境变量中存 环境变量中存在的问题-某些环境变量对于shell本身和shell启动的子进程都有用,如PATH、PWD等。这就要求环境变量在shell和子进程中同步更新。然而根据纯粹的环境变量的定义,这样是做不到的,子进程对与环境变量的改变不会传导给父进程。 第10页:环境变量和shell变量 Bourne shell家族的处理方法-在Bourne shell家族中不存在完全的环境变量,只可能即是shell变量,又是环境变量。变量定义之后,自动设为shell变量,使用export命令可以将shell变量修改为“shell+环境”变量 第11页:环境变量和shell变量 Bourne shell家族中定义变量-定义局部变量HARLEY=cool-定义环境变量export HARLEY 第12页:环境变量和shell变量 C-Shell家族的处理方法-在C-Shell家族中,定义了少数几个特殊的shell变量,将这些shell变量分别绑定到对应的环境变量,保持shell变量和对应环境变量的同步更新。 第13页:环境变量和shell变量 第14页:环境变量和shell变量 C-Shell家族中定义变量 定义局部变量使用set命令 定义环境变量使用setenv命令 第15页:12.4显示环境变量 常用命令-env-printenv或分页方式-env | less-printenv | less或排序加分页方式-env | sort | less-printenv | sort | less 第16页: 第17页:12.5显示shell变量 显示shell变量命令-set 对于Bourne shell来说,无法通过set知道变量是否被导出为环境变量 第18页: 第19页:12.6显示及使用变量的值 相关命令-echo 所有shell通用-print:Korn shell上使用 第20页:显示及使用变量的值:$ echo I 例子$ echo I like UnixI like Unix$ echo ${HOSTNAME}luna$ echo $HOSTNAMEluna 第21页:显示及使用变量的值:$ echo 例子$ echo hostname is <$HOSTNAME>error!$ echo “hostname is <$HOSTNAME>”hostname is <luna>$ echo This is $HOSTNAME’s computererror!$ echo This is ${HOSTNAME}’s computerThis is luna’s computer 第22页:Bourne shell家族使用变量 创建变量-方式1$NAME[=value]; exportNAME-方式2$ exportNAME[=value]… 复位变量-unsetNAME… 第23页:Bourne shell家族使用变量 例子:PAGER=less; export PAGERunset PAGERexport HARLEY WEEDLYexport PAGER=less EDITOR=viPATH=“/usr/local/bin:/usr/bin:/bin” 第24页:12.8 C-Shell家族使用变量 shell变量-创建 setname[=value]-复位:unsetname 环境变量-创建 setenvNAME[value]-复位:unsetenvNAME 第25页:12.8 C-Shell家族使用变量 例子:set term=vt100set path=(/usr/bin bin /usr/ucb)unset ignoreeofsetenv PATH /urs/local/bin:/usr/bin:/binsetenv WEEDLY “a cool cat”unsetenv WEEDLY 第26页:shell选项:set-o、set +o shell选项-在Bourne shell中使用-有两个状态:on/off,打开一个选项时,就说设置了这个选项。关闭这个选项时,就说复位了这个选项。 第27页:shell选项:set-o、set +o 设置和复位shell选项-方式1:在shell启动时,以命令选项的方式指定一个或多个选项。例如:启动Korn shell时,设置monitor选项:ksh-m 第28页:shell选项:set-o、set +o 设置和复位shell选项-方式2:采用set命令set-ooption:设置一个选项set +ooption:复位一个选项例如:shell正在运行,设置monitor选项:set-omonitor 第29页:12.10显示shell选项 可以用两个命令显示所有shell选项的状态-set-o以一种容易阅读的方式显示所有shell选项的当前状态。这种格式适合人类阅读。-set +o以一种紧缩的方式显示所有shell选项的当前状态。这种格式适合作为shell脚本或程序的数据。 {{#src}} {{/src}}