2018最新linux云计算集群架构师-第一阶段-Linux操作系统入门到精通-第19章-shell脚本基础-SHELL变量及运用
SHELL变量及运用
1.shell变量
变量是shell 传递数据的一种方法。变量是用来代表每个值的符号名。我们可以把变量当成一个容器,通过变量,可以在内存中存储数据。也可以在脚本执行中进行修改和访问存储的数据
变量的设置规则
1)变量名称通常是大写字母,它可以由数字、字母(大小写)和下划线_组成。变量名区分大小写;但是大家要注意变量名称不能以数字开头
2)等号 = 用于为变量分配值,在使用过程中等号两边不能有空格
3)变量存储的数据类型是整数值和字符串值
4)在对变量赋于字符串值时,建议大家用引号将其括起来。因为如果字符串中存在空格隔符号。需要使用单引号或双引号
5)要对变量进行调用,可以在变量名称前加美元符号$
6)如果需要增加变量的值,那么可以进行变量值的叠加。不过变量需要用双引号包含“$变量名”或用${变量名}包含
变量的分类
按照变量的作用可以分成4类
1)用户自定义变量
2)环境变量:这种变量中主要保存的是和系统操作环境相关的数据。
3)位置参数变量:这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的。
4)预定义变量:是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的。
按照变量作用域可以分成2类:全局变量和局部变量。
局部变量是shell 程序内部定义的,其使用范围仅限于定义它的程序,对其它程序不可见。包括:用户自定义变量、位置变量和预定义变量。
全局变量是环境变量,其值不随shell 脚本的执行结束而消失。
2.用户定义变量
变量名命名规则:由字母或下划线打头,不允许数字开头,后面由字母、数字或下划线组成,并且大小写字母意义不同。在使用变量时,在变量名前加$
#给变量VAR1赋值
VAR1=123
echo $VAR1
#错误的赋值方式,不允许数字开头,等号两边不能有空格
#下面代码都报错
VAR2 =456
VAR2= 456
VAR2 = 456
3VAR2 = 456
#变量值的叠加,使用${}
VAR4=mysql
echo $VAR4
echo $VAR4-db.log
echo $VAR4.db.log
#发现输出结果不是我们想要的,怎么办?结果:.log
echo $VAR4db.log
#可以这样
echo ${VAR4}db.log
3.命令的替换,使用$()或反引号
#在命令就调用date命令 #扩展:date命令是显示或设置系统时间与日期 #-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号; #<+时间日期格式>:指定显示时,使用特定的日期时间格式。 #格式化输出 date +"%Y-%m-%d" #今天时间,一般备份数据需要用这个 date +"%Y-%m" #只显示年月 date +"%Y-%m-%d %H:%M.%S" #日期加时间 date +"%Y/%m/%d %H/%M/%S" #使用/做分隔符 date +"%Y-%m-%d-%H-%M-%S" #使用-做分隔符,一般备份数据需要用这个 #注:%y 年份只显示2位, %Y年份显示4位 #date命令加减操作 date +%Y%m%d #显示当天年月日 date -d "+1 day" +%Y%m%d #显示明天的日期 date -d "-1 day" +%Y%m%d #显示昨天的日期 date -d "-1 month" +%Y%m%d #显示上一月的日期 date -d "+1 month" +%Y%m%d #显示下一月的日期 date -d "-1 year" +%Y%m%d #显示前一年的日期 date -d "+1 year" +%Y%m%d #显示下一年的日期 #设定时间 date -s 20180523 #设置成20120523,这样会把具体时间设置成空00:00:00 date -s 01:01:01 #设置具体时间,不会对日期做更改 date -s "2018-05-23 01:01:01" #这样可以设置全部时间 #在命令中调用date命令输出值 echo `date` echo $(date) echo `date +"%Y-%m-%d"`
4)命令的嵌套使用,使用$( $( ))
find /root/ -name *.txt VAR6=$(tar zcvf root.tar.gz $(find /root/ -name *.txt)) #tar: 从成员名中删除开头的"/" echo $VAR6 #查看值, VAR6中存储着tar的标准输出 ######实战######## #分享一个系统时间错误,引起tar报警告 date -s "2012-03-03 21:25:00" tar zxvf root.tar.gz -C /opt/ #root/.cache/tracker/db-version.txt #tar: root/.cache/tracker/db-version.txt:时间戳 2017-09-19 13:05:18 是未来的 168094624.438537189 秒之后 #注:如果弹出这个消息,是因为咱们的当前系统的时间不对。 比如:当前系统的时间晚于文件的mtime时间 ls /opt/root/.mozilla/firefox/wggimqlt.default/ -a #解压成功
posted on 2019-11-05 18:07 herisson_pan 阅读(18) 评论(0) 收藏 举报
浙公网安备 33010602011771号