设为首页 加入收藏

TOP

Linux SHELL中的变量详述
2014-11-23 22:32:51 】 浏览:4775
Tags:Linux SHELL 变量 详述

一,SHELL本地变量:


本地变量就如同局部变量一样,只在本SHELL中起作用。它不会影响到其他SHELL中的变量。


格式:NAME=value


1,变量的调用:在变量前加$
$ echo $HOME
/home/hbwork
$ WEEK=Satur
$ echo Today is $WEEKday
Today is
$echo Today is ${WEEK}day //若变量和其他字符组成新的字,这时就必须给变量加上大括号{},以更加清楚的显示给shell,哪个是真正的变量,以实现字符串的合并等功能。
Today is Saturday


2,显示变量值
可以使用echo命令。需要注意的是,使用变量的时候必须在变量名前加上$符号。另外可以使用set命令,显示所有本地SHELL变量。包括SHELL中预定义了一些环境变量,且用户自己已经定义过的本地变量也会在其中显示。



3,Shell变量赋值从右到左进进行赋值(变量未赋值时,shell不报错,而是赋值为空!)
$ X=$Y Y=y
$ echo $X
y
$ Z=z Y=$Z
$ echo $Y


$


4,使用unset命令删除变量的赋值
$ Z=hello
$ echo $Z
hello
$ unset Z
$ echo $Z


$


5,有条件的命令替换 (测试变量是否已经赋值)
在Bourne Shell中可以使变量替换在特定条件下执行,即有条件的环境变量替换。 这种变量替换总是用大括号括起来的。


${variable: -value}变量替换时将使用命令行中定义的默认值,但变量的值并没有因此而改变。variable是一变量值,value是变量替换使用的默认值


例:$echo Hello $UNAME
结果显示:Hello
$echo Hello ${UNAME: -there}
结果显示:Hello there
$echo $UNAME
结果显示: (空)
$UNAME=John
$echo Hello ${UNAME: -there}
结果显示:Hello John


${variable:=value}不但使用默认值进行替换,而且将默认值赋给该变量。该形式在变量替换后同时把值value符给变量variable。


例:$echo Hello $UNAME
结果显示:Hello
$echo Hello ${UNAME:=there}
结果显示:Hello there
$echo $UNAME
结果显示:there


变量替换的值也可以是` `括起来的命令:


$USERDIR={$Mydir: -`pwd`}


${variable: +value}只有当变量已赋值时才用指定值替换,变量variable已赋值时,其值才用value替换,否则不进行任何替换。


例:$ERROPT=A
$echo ${ERROPT: +"Error tracking is acitive"}
结果显示:Error tracking is acitive
$ERROPT=
$echo ${ERROPT: +"Error tracking is acitive"}
结果显示: (空)


${variable: message}使用错误检查的条件进行变量替换,当变量variable已设置时,正常替换。否则消息message将送到标准错误输出(若此替换出现在shell程序中,那么该程序将终止)。


例:$UNAME=
$echo $ {UNAME: "UNAME HAS NOT BEEN SET"}
结果显示:UNAME HAS NOT BEEN SET


$UNAME=Stephanie
$echo $ {UNAME: "UNAME HAS NOT BEEN SET"}


结果显示:Stephanie
当没有指定message时,shell将显示一条默认的消息,例如:


$UNAME=
$echo $ {UNAME: }
结果显示:sh:UNAME:parameter null or not set


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Linux下的简单shell脚本 下一篇Ubuntu7.04下arm交叉编译

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目