如何学好shell

变量概述

变量是shell传递数据的一种方法,即用一个固定的字符串去表示不固定的值,便于后期引用

变量命名规范

命名要求:字母、数字、下划线组成,字母开头(不能以数字开头)

尽量具备一定含义,但不要和系统命令冲突;等号赋值,两边不能空格

#例
     ip=192.168.1.1      #与系统命令冲突
     HostName_IP=192.168.1.1     #推荐使用驼峰式命名
变量使用
a=34        #将固定字符a表示为34
 echo $a     #返回a
 34          #返回的执行结果
 name="zhangsan"             #定义变量
 age=19                      #定义变量
 score=90                    #定义变量
 id=1                        #定义变量
 info="ID:$id Name:$name Age:$age Score:$score"     #在变量中引用变量
 eccho $info                             #返回info
 ID:1 Name:zhangsan Age:19 Score:90      #返回结果
 time=$(date +%F)                        #变量中执行命令
 echo $time              #返回time
 2023-07-25      #返回的执行结果
变量定义方式
  • 用户自定义变量:人为定义变量

  • 系统环境变量:系统操作环境相对自带的

  • 位置参数变量:向脚本传递参数的变量

  • 预定义变量:bash定义好的变量

  1. 变量名不能出现"-",有空格时需要用引号括起来

var=“hello word”

2.引用变量,$+变量名或者${变量名}

id=1                        #定义变量
 info="ID:$id"               #引用id变量
 ​
 name=zhangsan               #定义name变量
 echo "${name}_is"           #引用name变量时后缀加_is
 zhangsan_is                 #返回结果
 ​
 例:
 id=1
 name=zhangsan
 age=19
 score=90
 student="ID:${id}姓名:${name}年龄:${age}成绩:${score}"
 echo $student
 ID:1姓名:zhangsan年龄:19成绩:90
截取
ifconfig ens33|head -2|tail -1|awk '{print $2}'   #截取ip
 df -hT|head -7|tail -1|awk '{print $6}'         #截取硬盘使用百分比
 used *100 / buff/cache                  #内存占比公式定义为变量时双嵌套
 mem=$((used *100 / buff/cache))         #计算
查看变量
set |grep ip
清除变量
unset ip

引用变量,双引号属于弱引用取变量的值,单引号属于强引用原封不动引用变量

echo "$var hello china"         #需要引用变量值
 echo '$var hello china'             #只想引用变量名,不执行$特殊符号
 echo "$var hello china \$SHELL"  #部分变量执行,部分变量不执行
变量赋值
Ip=`ifconfig ens33 | grep "inet" |grep -v inet6 |awk '{print $2}'`
     或
 Ip=$(ifconfig ens33 | grep "inet" |grep -v inet6 |awk '{print $2}')
变量嵌套
aa=$(rpm -e $(rpm -qa|grep java))      #由里向外运行命令

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值