当前位置: Oracle DBA培训网-优技培训 >> Linux教程 >

Linux培训教程:shell变量的应用

Linux培训教程:shell变量的应用

Linux培训教程:shell变量的应用

一:用户自定义变量

1.定义新变量

变量名=变量值

例:新建一个名为"DAY变量,初始内容设置为“Sunday"

[root@localhost ~] # DAY=Sunday

2.查看和引用变量值

[root@localhost ~] # echo $DAY (echo输出要加$符号)

例:在变量DAY的内容后紧跟"MorningBus"

[root@localhost ~] # echo ${DAY}MorningBus (方便区分要将变量括起来)

3.为变量赋值的常用方法

双引号(")、引号中可以引用变量

例:确认变量DAY的内容,并使用双引号TODAY变量赋值“Today is $DAY”

[root@localhost ~] # TODAY="Today is $DAY"

单引号(')、引号中不允许引用变量,所有字符都将作为普通字符

例:确认变量DAY的内容,并使用单引号TODAY变量赋值“Today is $DAY”

[root@localhost ~] # TODAY='Today is $DAY'

[root@localhost ~] # echo $TODAY

Today is $DAY (输出结果没有被引用)

反撇号(`)、反撇号中只能存在命令

例:统计当前登录到本地终端(tty1-tty6)中的用户数量,并将结果保存到变量UserNum中

[root@localhost ~] # UserNum=`w | grep "tty" | wc -l`

read命令、可以实现简单的交互操作,以空格作为分隔符

例:从键盘输入一整行数据、依次赋给G1、G2,并确认G1、G2变量的内容

[root@localhost ~] # read G1 G2

Good morning , teacher (键盘输入)

[root@localhost ~] # echo $G1 (查询)

Good

[root@localhost ~] # echo $G2

moring , teacher

设置变量的作用范围、默认情况下用户自定义的变量只能在当前的shell环境中执行,称为局部变量、转换为全局变量之后可以再其他shell环境中使用

exprot命令可以转换

[root@localhost ~] # export DAY

清除自定义变量(unset命令)

例:清除已设置的变量DAY、MONTH、YEAR

[root@localhost ~] # unset DAY MONTH YEAR

数值变量的运算

一般只适合进行简单的整数运算

expr 变量1 运算符 变量2

运算符:+ 、- 、\* (乘)、/ 、%(求模,即余数)

例:设置变量X、Y的值分别为22、33,依次计算变量X、Y的加减乘除及取模的运算结果

[root@localhost ~] # X=22

[root@localhost ~] # Y=33

[root@localhost ~] # expr $X + $Y

[root@localhost ~] # expr $X - $Y

[root@localhost ~] # expr $X\* $Y

[root@localhost ~] # expr $X / $Y

[root@localhost ~] # expr $X % $Y

例:计算变量X的值与数值123的和,并将计算结果重新赋值给X

[root@localhost ~] # echo $X

22

[root@localhost ~] # X=`expr $X + 123`

[root@localhost ~] # echo $X

145

二:环境变量

用户登录后Linux系统预先设定好的一类shell变量,功能是设置用户的shell工作环境

查看环境变量

[root@localhost ~] # set | less

例:确认当前的命令搜索路径,将/opt/bin目录添加到现有的搜索路径中去

[root@localhost ~] # echo $PATH

[root@localhost ~] # PATH="/opt/bin:$PATH"

例:编辑“~/.bash_profile”文件,修改PATH的设置,以便用户下次登录后能使用/opt/bin目录作为默认搜索路径

[root@localhost ~] # vi ~/.bash_profile

PATH=$PATH:HOME/bin:/opt/bin

export PATH

三:位置变量

为了方便通过命令行给程序提供操作参数,引入了位置变量!shell命令执行时,除了输入第一个字段外,其余字符串按照从左到右顺序依次赋值给位置变量

例:执行“service network restart”命令时,service脚本程序的第一个位置参数用$1表示,对应的值为"network",第二个位置参数用$2表示,对应的值为restart

四:预定义变量

$#:表示命令行中位置参数的数量

$*:表示所有位置参数的内容

$?:表示命令执行后的状态,检查命令执行是否正确!为0正确,其他错误

$$:表示当前进程的进程号

$!:表示后台运行的最后一个进程的进程号

$0:表示当前执行的进程的进程名

技术沙龙MORE+

标签错误:<!-- #Label# labelId=20160707140604 moduleId=1 classId=12231768634 orderby=2 fields=url,title,u_info attribute= datatypeId=22192428132 recordCount=3 pageSize= <htmlTemplate><dt><img src="/images/index_26${index}.jpg" width="100" height="62" /><a href="$url" title="${title}">${title}</a><span>${api.left(u_info,60)}</span></dt></htmlTemplate> -->
我要参加技术沙龙