预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共13页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

一、Shell变量主要有本地变量和环境变量。 1、本地变量--在用户现有运行的脚本中使用 1)定义本地变量格式:variable-name=value 例子:[root@jike1/root]#LOCALTEST="test" [root@jike1/root]#echo$LOCALTEST(注意:echo$LOCALTEST和echo${LOCALTEST} 的效果是一样的) (在变量名前加$,可以取得此变量的值,使用echo命令可以显示变量的值) 2)显示本地变量格式:set 例子:[root@chinaitlabroot]#set 3)清除本地变量格式:unsetvariable-name 例如:[root@jike1/root]#unsetLOCALTEST 此时再执行echo$LOCALTEST将看不到变量LOCALTEST的输出。 2、环境变量--在所有的子进程中使用 1)定义环境变量格式:exportvariable-name=value(与本地变量的定义相比,多了一个 export关键字) 例子:[root@chinaitlab/root]#exportDOMAIN="chinaitlab.com" [root@chinaitlabshell]#vitestenv.sh #!/bin/bash#表示用bash来解析脚本 #testenv.sh echo$DOMAIN [root@chinaitlabshell]#chmod+xtestenv.sh [root@chinaitlabshell]#./testenv.sh chinaitlab.com 2)显示环境变量格式:env(本地变量的显示使用set,环境变量的显示使用env) 例子:[root@chinaitlabtest]#env 3)清除环境变量格式:unsetvariable-name(用法与本地变量相同,都使用unset) 例子:[root@chinaitlabshell]#unsetDOMAIN 此时再执行./testenv.sh将看不到变量DOMAIN的输出。 3、其它变量 1)位置变量$0,$1,$2,$3……$9 2)只读变量readonlyvariable 注意:只读变量不能被清除和改变其值,所以要谨慎使用。 3)特殊变量$#,$?,$$(表示当前进程的PID)…… 二、运算符和表达式 1、运算符是对计算机发的指令,运算符类型有: 算术运算符(+、-、*、/) 按位运算符(~、<<、>>、&、|、^) 逻辑运算符(&&、||、>、==、<、!=) 赋值运算符(=、+=、-=、*=、/=、%=、&=、^=、|=、<<=、>>=) 2、表达式是运算符和运算对象的组合体。 1)$[]:可以接受不同基数的数字的表达式 echo$[10+1](输出:11) echo"$[2+3],$HOME"(输出:5,/root) echo$[2<<3],$[8>>1](输出:16,4) echo$[2>3],$[3>2](输出:0,1表达式为false时输出0,为true时输出1) 2)字符表达式:直接书写,采用单引号,双引号引起来。 echo"$HOME,Thatisyourrootdirectory."(输出:/root,Thatisyourrootdirectory.) echo'$HOME,Thatisyourrootdirectory.'(输出:$HOME,Thatisyourrootdirectory.) 单引号和双引号的区别在于:单引号是原样显示,双引号则显示出变量的值。 3)test表达式 三、控制结构 1、if语句 例:#!/bin/bash #if.sh if["10"-lt"12"]#注意:if和[之间,[和"10"之间,"12"和]都有空格,如果不加空格,会出 现语法错误 then echo"Yes,10islessthan12" fi 2、case语句 例:#!/bin/bash #case.sh echo-n"Enterastartorstop:" readANS case$ANSin start) echo"Youselectstart" ;; stop) echo"Youselectstop" ;; *) echo"`basename$0`:Youselectisnotbetweenstartandstop">&2 #注意:>和&2之间没有空格,>&2表示将显示输出到标准输出(一般是屏幕)上 exit; ;; esac 3、for循环语句 格式:for变量名in列表 do 命令1 命令2 ...... done 4、until循环语句 格式:until条件 do 命令1 命令2 ...... don