- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux超级基础系列——shell变量(本地变量和环境变量)
linux 超级基础系列——shell 变量(本地变量和环境变量)
为使shell 编程更有效,系统提供了一些shell 变量。shell 变量可以保存诸如路径名、文件
名或者一个数字这样的变量名。shell 将其中任何设置都看做文本字符串。
有两种变量,本地和环境。严格地说可以有4 种,但其余两种是只读的,可以认为是特殊
变量,它用于向shell 脚本传递参数。
1 什么是shell 变量
按照定义来说,变量是存储设备中的一些可读写的存储单元.变量可以定制用户本身的工作
环境。使用变量可以保存有用信息,使系统获知用户相关设置。变量也用于保存暂时信息。
例如:一变量为EDITOR,系统中有许多编辑工具,但哪一个适用于系统呢?将此编辑器名
称赋给EDITOR,这样,在使用cron 或其他需要编辑器的应用
时,这就是你将一直使用的EDITOR 取值,并将之用作缺省编辑器。
举例来说,登录的审核系统需要编辑。在菜单中选择此选项时,应用查询EDITOR 变量值,
其值为vi 。系统知道可使用此编辑器(用命令echo $EDITOR 看看自己的?)。
另一个例子需要登录数据库系统,键入下列命令:
$ isql -Udavet -Pabcd -Smethsys
这里- S 为正在连接的服务器名称。有一变量DSQUERY 保存服务器名称值。设置服务器名
称值到DSQUERY 变量,这样如果登录时不使用-S 提供服务器名称,应用将查询DSQUERY
变量,并使用其取值作为服务器名称。需要做的全部工作就是键入下列命令:
$ isql -Udavet -Pabcd
工作方式同上例。
2 本地变量
本地变量在用户现在的shell 生命期的脚本中使用。例如,本地变量file-name 取值为
loop.doc,这个值只在用户当前shell 生命期有意义。如果在shell 中启动另一个进程或退出,
此值将无效。这个方法的优点就是用户不能对其他的shell 或进程设置此变量有效。
使用变量时,如果用花括号将之括起来,可以防止shell 误解变量值,尽管不必一定要这样
做,但这确实可用。要设置一本地变量,格式为:
$ variable-name=value 或 $ {variable-name=value}
注意,等号两边可以有空格。如果取值包含空格,必须用双引号括起来。shell 变量可以用
大小写字母。
变量设置时的不同模式:
Variable-name=value 设置实际值到variable-name
Variable-name+value 如果设置了variable-name ,则重设其值
Variable-name:?value 如果未设置variable-name ,显示未定义用户错误信息
Variable-name?value 如果未设置variable-name ,显示系统错误信息
Variable-name:=value 如果未设置variable-name ,设置其值
Variable-name:-value 同上,但是取值并不设置到variable-name ,可以被替换
2.1 显示变量
使用echo 命令可以显示单个变量取值,并在变量名前加$,例如:
echo $LOGNAME
$dave
可以结合使用变量,下面将错误信息和环境变量LOGNAME 设置到变量error-msg 。
$ERROR_MSG=sorry, there is not $LOGNAME
$echo $ERROR_MSG
$sorry, there is not dave
上面例子中,shell 首先显示文本,然后查找变量$LOGNAME,最后扩展变量以显示整个变
量值。
2.2 清除变量
使用unset 命令清除变量。
unset variable-name
2.3 显示所有本地shell 变量
使用不加任何参数的set 命令显示所有本地定义的shell 变量。
set 输出可能很长。查看输出时可以看出shell 已经设置了一些用户变量以使工作环境更加
容易使用。
2.4 结合变量值
将变量并排可以使变量结合在一起:
echo $var_1$var_2
2.5 测试变量是否已经设置
有时要测试是否已设置或初始化变量。如果未设置或初始化,就可以使用另一值。此命令格
式为:
$ {variable:-value}
意即如果设置了变量值,则使用它,如果未设置,则取新值。例如:
$color=blue
$echo The sky is ${color:-grey} today
The sky is blue today
原创力文档


文档评论(0)