shell之变量

变量分为那两个?

答:系统变量与用户自定义可配置变量;而shell里面可以叫全局变量或者局部变量。

常用系统变量有哪些?

答:$HOME(当前目录)、$PWD(当前所在路径查看)、$SHELL(当前的编辑器)、$USER(登录当前的用户)等。


  1. 实例操作;以常用环境变量作演示;命令执行echo +常用命令

    da97610fc753c905304e68c486681012.png

  2. 使用命令env可以查看详细的环境变量

    691489ce11c5a8a7a57fb6e55d428fbe.png

  3. env | less可以看到更加精准查询(printenv | less--一样效果)

    b3260c862a335b4df1ea022549b7b52b.png

  4. 演示局部或者全局

    如图:查看bash进程,ps -f只有一个全局;使用命令bash、再使用ps -f可以查看到pid:81649=ppid:81649;然后exit退出,再查看,发现只剩下一个全局bash。

    eace8e3d24dce5dc960e48113a6eb1f5.png

  5. set可以查看到用户自定义变量;下图使用命令为set | less

    c22d64d7542a79ce7cb2ddf7f3850e2e.png


自定义变量

  1. 基本语法

    1. 定义变量:变量名=变量值;注意=号前后不能有空格

      f4267caf0a1180e9da9832a7a43e27c2.png

    2. 撤销变量:unset 变量名

    3. 声明静态变量readonly 变量,注意不能unset

  2. 变量定义规则

    1. 变量名称可以由字母、数字、下划线组成,但是不能以数字开头,环境变量名称建议大写。

    2. 等号两侧不能有空格。(如图,有空格会报错)

      1efa79dbc4761acffc1b7ac5ef788aa5.png

    3. 在bash中,变量默认类型都是字符串类型,无法直接进行数值计算。(后面)

      f4608b7ee29f4fdc34fb74dd9116bdc3.png

    4. 变量值中间如果有空格需要使用单引号或者双引号括起来(如图1,会报错,图2、3即可正常输出)

      0902d0c0a41913d3ecd56621741db7d7.png

      图1

      7c4c1f3180c16702b417577bca29eff0.png

      图2

      a2983d22e0ac3268881ab0e718bca7a7.png

      图3

  3. 怎么判断是全局变量还是局部(参考上面env与set详解)下面图明显易见为局部变量

    1a4a51409c547755f668b46b51062d5b.png

  4. 给liu这个变量添加到全局变量,使局部变量也可查询到,export提升为全局变量

    e5e711914a8b33221cfff573f5992706.png

  5. 只读变量、撤销变量

    1. readonly只读变量

      4b5149ac9496f8f763887a846eeaddd5.png

    2. unset撤销变量,查询变量:set | less;如图1所示我们新建的自定义变量,删除的话unset 变量名如图2;图三已撤销。

      660e4e28fbf928a8125c1cc9bef9a61f.png

      图1

      39e0fd6185b0989de8e8bcf907711369.png

      图2

      71014bf61e4419e6cb000cde8b3a88dd.png

      图3

特殊变量

$n基本语法

  1. $n(功能描述:n为数字,$0代表脚本名称,$1-$9代表1-9个参数;等于或者超过10的参数;需要用大括号如${10});备注:需要使用双引号才会生效,当成一个变量,单引号为一个值。

    0a76dd7f1de111e3f77b0dec7ac1e667.png

  2. 新建一个脚本,演示$n;脚本内容如下

    708676cb485e130c133af3bd241f2c01.png

  3. 新增一个脚本、进行赋权,输出脚本内容

    65deb0d82568d65cc29a2b432007c801.png

$#基本语法

  1. $#功能描述(获取所有输入参数个数,常用于循环、判断参数的个数是否正确以及加强脚本的健壮性)

  2. 演示案例;如图测试$#在脚本内加入,直接执行,发现个数(geshu)为0,再往下执行脚本,加上值,个数变为2

    9328cebd614f747a43f37f8f785244c8.png

$*基本语法

  1. $*功能描述(这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体),如图演示

    6b526236178b6bda512d9d8ec81fa52f.png

$@基本语法

  1. 功能描述(这个变量代表命令行中所有的参数,$@将每个参数区别对待)

    5408a58da2baa06fe7b4aa0b13a28eec.png

$?

  1. $?功能描述(最后一次执行命令返回状态。如果这个变量值为0,证明执行成功,如果非0则执行脚本失败,具体由这个命令返回)

    df00da3a7b8d50d587c4715f4ff40847.png

    成功

    a42efbea9bc5081d212d1b59088f36ce.png

    失败

本章节记录到此结束~下一章节shell之运算符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落花踏马

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值