2.shell变量的使用

目录

1.shell变量定义规则

2.变量如何使用

3.只读变量

4.删除变量

5.env:查看所有的环境变量

6.set:查看所有的环境变量和自定义变量

7.$ 

8.? 

9.export

10.read

11.declare


1.shell变量定义规则

      ①变量名不能包括$符号     eg:$name,name$,na$me等变量都是错误的

      ②变量名只能使用英文字母,数字,下划线来组成,并且不能以数字开头 

      ③变量名中不能存在空格标点符号,可以使用下划线  

      ④变量命中不能使用bash中的关键字

2.变量如何使用

    只需要在变量名前加个$即可,如下

#!/bin/bash
hobby="swim"
echo $hobby  
echo ${hobby}  //这两种都会输出结果:swim

    变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况

for skill in Ada Coffe Action Java; do
    echo "I am good at ${skill}Script"
done

分析:1.使用${skill}正常打印
    2.使用$skillScript,结果则与我们预想的不一样了,它会误以为skillScript是一个变量,然而我们并没有定义该变量,所以打印出来的结果只有I am good at

    在使用变量的时候,推荐使用${变量名}的形式

3.只读变量

    在shell中,使用readonly修饰,只能读而不能修改。相当于java中的final修饰的变量

#!/bin/bash 
param1="ShangHai"
echo ${param1}   ---结果:ShangHai
param1="BeiJing"
echo ${param1}   ---结果:BeiJing,说明param1变量已经被修改

readonly param2="Dog"
echo ${param2}   ---结果:Dog
param2="Cat"
echo ${param2}   ---报错:param2: readonly variable

4.删除变量

      使用unset可以删除变量

#!/bin/bash 
param1="ShangHai"
echo ${param1}   ---结果:ShangHai
unset param1
echo ${param1}   ---结果:(空白,因为变量已经删除)

readonly param2="Dog"
echo ${param2}   ---结果:Dog
unset param2     ---提示:unset: param2: cannot unset: readonly variable
echo ${param2}   ---结果:Dog(证明unset无法删除只读变量)

5.env:查看所有的环境变量

   env是environment(环境)的简写。罗列的是环境变量

[root@master ~]# env
XDG_SESSION_ID=1
HOSTNAME=master
SHELL=/bin/bash
...

6.set:查看所有的环境变量自定义变量

[root@master ~]# set

7.$ 

($也是一个变量)返回当前shell的进程号

[root@master ~]# echo $$

8.? 

(?也是一个变量)返回上个执行命令的返回值

    上个命令执行成功,返回 0;上个命令执行失败,返回的是一个非 0 的数值

[dmtsai@study ~]$ echo $SHELL
/bin/bash <==可顺利显示!没有错误!
[dmtsai@study ~]$ echo $?
0 <==因为没问题,所以回传值为 0
[dmtsai@study ~]$ 12name=VBird
bash: 12name=VBird: command not found... <==发生错误了!bash 回报有问题
[dmtsai@study ~]$ echo $?
127 <==因为有问题,回传错误代码(非为 0)
# 错误代码回传值依据软件而有不同,我们可以利用这个代码来搜寻错误的原因喔!
[dmtsai@study ~]$ echo $?
0
# 咦!怎么又变成正确了?这是因为 "?" 只与『上一个执行指令』有关,
# 所以,我们上一个指令是执行『 echo $? 』,当然没有错误,所以是 0 没错!

9.export

将自定义变量转变成环境变量

[dmtsai@study ~]$ export 变量名称

10.read

  读取键盘变量(要读取来自键盘输入的变量,就是用 read 这个指令了

11.declare/typeset

     declare typeset 是一样的功能,就是在『 宣告变量的类型
 


部分参考自:https://www.runoob.com/linux/linux-shell-variable.html

Linux命令可参考:https://www.runoob.com/linux/linux-command-manual.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

扛麻袋的少年

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

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

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

打赏作者

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

抵扣说明:

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

余额充值