Linux Shell编程学习Shell变量.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:13 大小:161KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

Linux Shell编程学习Shell变量.pdf

LinuxShell编程学习Shell变量.pdf

预览

免费试读已结束,剩余 3 页请下载文档后查看

15 金币

下载此文档

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

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]#set3)清除本地变量格式: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.shecho$DOMAIN[root@chinaitlabshell]#chmod+xtestenv.sh[root@chinaitlabshell]#./testenv.shchinaitlab.com2)显示环境变量格式:env(本地变量的显示使用set,环境变量的显示使用env)例子:[root@chinaitlabtest]#env3)清除环境变量格式:unsetvariable-name(用法与本地变量相同,都使用unset)例子:[root@chinaitlabshell]#unsetDOMAIN此时再执行./testenv.sh将看不到变量DOMAIN的输出。3、其它变量1)位置变量$0,$1,$2,$3……$92)只读变量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.shif["10"-lt"12"]#注意:if和[之间,[和"10"之间,"12"和]都有空格,如果不加空格,会出现语法错误thenecho"Yes,10islessthan12"fi2、case语句例:#!/bin/bash#case.shecho-n"Enterastartorstop:"readANScase$ANSinstart)echo"Youselectstart";;stop)echo"Youselectstop";;*)echo"`basename$0`:Youselectisnotbetweenstartandstop">&2#注意:>和&2之间没有空格,>&2表示将显示输出到标准输出(一般是屏幕)上exit;;;esac3、for循环语句格式:for变量名in列表do命令1命令2......done4、until循环语句格式:until条件do命令1命令2......don