- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
shell入门到经典 ch06
第6章 变量和引用
南京财经大学 江苏省电子商务重点实验室
伍之昂 王有权
提纲
变量
变量替换和赋值
无类型的Shell变量
环境变量
位置参数
引用
全引用和部分引用
命令替换
转义
变量的定义
变量用于保存有用信息,如路径名、文件名、数字等,Linux用户使用变量定制其工作环境,使系统获知用户相关的配置。变量本质上是存储数据的一个或多个计算机内存地址。
变量可分为三类:
本地变量是仅可以在用户当前Shell生命期的脚本中使用的变量,类似于C、C++、Java等编程语言中局部变量
环境变量则适用于所有由登录进程所产生的子进程,环境变量在用户登录后到注销之前的所有编辑器、脚本、程序和应用中都有效
位置参数也属于变量,它用于向Shell脚本传递参数,是只读的
变量替换和赋值(1)
变量是某个值的名称,引用变量值就称为变量替换
$符号是变量替换符号,如variable是变量名,那么$variable就表示变量的值
变量赋值有两种格式:
variable=value
${ variable=value }
等号的两边可以有空格,这不影响赋值操作;
如果值(value)中包含空格,则必须用双引号括起来;
变量名只能包括大小写字母(a-z和A-Z)、数字(0-9)、下划杠(_)等符号,并且变量名不能以数字开头,否则视为无效变量名
演示例6-1
变量替换和赋值(2)
利用unset命令可以清除变量的值,命令格式为:
unset 变量名
例6-3
readonly可将变量设置为只读,变量一旦设置为只读,任何用户不能对此变量进行重新赋值
variable=value #先对一个变量进行赋值
readonly variable #将variable变量设置为只读
例6-7
无类型的Shell脚本变量
Shell脚本变量是无类型的,这与awk变量是一样的
bash Shell不支持浮点型,只支持整型和字符型,默认情况下,Shell脚本变量是字符型的,同时,字符型的变量还具有一个整型值,为0;但是,bash Shell并不要求在定义一个变量时声明其类型
Shell会根据上下文判断出数值型的变量,并进行变量的算术运算和比较等数值操作。判断标准是变量中是否只是包含数字,如果变量只包含数字,则Shell认定该变量是数值型的,反之,Shell认定该变量是字符串
例6-9 integer脚本
例6-10 null-undeclare脚本
环境变量(1)
定义环境变量的方法
ENVIRON-VARIABLE=value #环境变量赋值
export ENVIRON-VARIABLE #声明环境变量
清除环境变量同样是unset命令
env命令可以列出已经定义的环境变量
环境变量(2)
PWD和OLDPWD
PWD记录当前的目录路径,当利用cd命令改变当前目录时,系统自动更新PWD的值
OLDPWD记录旧的工作目录,即用户所处的前一个目录
PATH
PATH就记录了一系列的目录列表,Shell为每个输入命令有哪些信誉好的足球投注网站PATH中的目录列表
HOME
HOME记录当前用户的根目录
SHELL
SHELL变量保存缺省Shell,缺省的值为/bin/bash
环境变量(3)
USER和UID
USER和UID是保存用户信息的环境变量,USR表示已登录用户的名字,UID则表示已登录用户的ID
PPID
PPID是创建当前进程的进程号,即当前进程的父进程号
PS1和PS2
提示符变量,用于设置提示符格式
PS1是用于设置一级Shell提示符的环境变量,也称为主提示符字符串,即改变: [root @jselab ~]#
例6-18:PS1变量是[\u@\h \W]\$,\u、\h、\W和\$表示了特定含义,\u表示当前用户名,\h表示表示主机名,\W表示当前目录名,如果是root用户,\$表示#号,其他用户,\$则表示$号
PS2是用于设置二级Shell提示符的环境变量,如例6-20
提示符变量中特殊符号及其意义
模式
意义
\d
以“周 月 日”格式显示的日期
\H
主机名和域名
\h
主机名
\s
Shell的类型名称
\T
以12小时制显示时间,格式为:HH:MM:SS
\t
以24小时制显示时间,格式为:HH:MM:SS
\@
以12小时制显示时间,格式为:am/pm
\u
当前的用户名
\v
bash Shell的版本号
\V
bash Shell的版本号和补丁号
\w
当前工作目录的完整路径
\W
当前工作目录名字
\#
当前命令的序列号
\$
如果UID为0,打印#;否则,打印$
环境变量(4)
几个重要的配置文件
$HOME/.bash_profile是最重要的
文档评论(0)