Linux与Shell学习--shell系列3--变量

目录

1、变量命名的格式要求

2、shell变量中的注意事项

3、变量的使用方法

4、变量的类型 

(1)自定义变量

(2)环境变量 

(3)位置变量

(4)预定义变量


        还是先简单说下什么是变量,简单的说就是字面意思可变的量,比如a=1就是一个变量,变量就是一个暂时储存数据的地方,我们通过调用对应的变量名字就可以得到其对应的值。

1、变量命名的格式要求

在shell中给变量命名时有以下几个规则。

(1)shell变量的命名只能使用英文字母,数字和下划线,并且开头不能以数字开始。

(2)shell变量的命名中不能使用标点符号

(3)不能使用bash里的关键字(可用help命令查看保留关键字)。

正确的变量名:Name、name、_name

错误的变量名:3Name(首字母不能时数字)、na?me(不能带除了下划线外的其他标点符号)

2、shell变量中的注意事项

(1)变量名区分大小写,环境变量建议使用大写便于区分

(2)在shell中,变量和值之间不能有空格,即等号左右两侧不能有空格,如果变量需要有空格则需要使用引号,单引号和双引号在shell中有不同的作用,下面会详细说明下。 

(3)单引号和双引号的区别

单引号不可识别特殊语法

双引号可以识别特殊语法

在上图中,先定义一个变量name=test,然后name1='${name}’ 这里用的是单引号,所以直接给name1赋值的就是字符串${name},name2="${name}"给name2赋值用的是双引号,所以name2打印出的结果就是双引号里的name的变量test。所以给变量赋值时,如果是想直接打印内容,就用单引号即可,如果想赋值的是另一个变量就要选择使用双引号。

 3、变量的使用方法

定义好变量后该如何使用呢?使用一个定义好的变量只需要在变量前面加上 $ 符号即可。

 可以看出带不带{}对变量进行输出时,输出结果都是一样的,但是一般情况下最好带上{},这样能很明确的看到变量名。

4、变量的类型 

 常见 Shell 变量的类型包括:自定义变量、环境变量、位置变量、预定义变量

(1)自定义变量

自定义变量就是我们平常用的最多的变量,定义自定义变量的方法为 变量名=变量值,我们可以对变量的名字自定义,但是必须要符合命名规则。

 (2)环境变量

环境变量又可以叫做全局变量,定义环境变量时,需要使用export去声明。(和自定义变量的区别,自定义变量时局部变量,其变量的范围是仅在当前的Shell中生效,环境变量又可被叫做全局变量,其变量的范围是会在当前Shell和其子Shell中都生效)

(3)位置变量

位置变量就是bash将传递给脚本的参数,按照位置不同,保存在不同的位置变量中,以便于脚本调用这些变量,位置变量属于预定义变量的一种,常见的位置变量有 $n(n代表数字)、$*、$@、$#。

$n:$0表示脚本的名称、$1-n代表里面的参数,10以上的参数需要大括号表示比如:{10}

$*:显示向脚本传递的所有参数,但是会把所有的参数看成一个整体

$@:显示向脚本传递的所有参数,但是会把每个参数单独进行展示

$#: 表示传递到脚本的参数的个数

脚本:

#! /bin/sh
echo "shell脚本名字:$0"
echo "参数1:$1"
echo "参数2:$2"
echo "参数3:$3"
echo "参数4:$4"
echo "参数5:$5"
echo "参数6:$6"
echo "参数7:$7"
echo "参数8:$8"
echo "参数9:$9"
echo "参数10:${10}"
echo "所有的参数,以一个字符串显示:$*"
echo "所有的参数,区分每个字符串显示:$@"
echo "显示传递到脚本的参数的个数:$#"               

脚本截图:

 运行结果:

 

(4)预定义变量

预定义变量也是Bash中已经定义好的变量,变量名不能自定义,变量作用是固定的。常见的预定义变量有$?、$$、$!。

$?:前一条命令执行后的返回状态,返回值为0表示执行正确,返回任何非0值均表示执行出现异常。

$$:返回当前进程的进程号(PID)

脚本:

#! /bin/bash
echo "输出当前进程的进程号(PID):$$"

脚本截图:

运行结果:

$!:返回最后一个后台进程的进程号(PID)


 下图为公众号二维码,内容会同步发出,大家可以关注一起学习

                                                          

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

刘阿童木

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

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

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

打赏作者

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

抵扣说明:

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

余额充值