• Linux shell编程学习笔记5:变量命名规则、变量类型、使用变量时要注意的事项


    跟其他的高级开发语言一样,Linux Shell编程中使用的数据也需要保存在变量中。

    Shell使用变量来控制其行为,并且可以通过更改变量值来更改Shell和其他程序的行为。

    我们先来了解一下变量命令的规则、变量类型和使用变量时要注意的事项。

    一、变量命名规则

    Linux Shell编程中使用的变量,其命名必须遵循如下这些规则:

    1.变量名只能使用英文字母,数字和下划线,且不能以数字开头。
    2.变量名不能有空格。
    3.变量名不能使用标点符号。
    4.不能使用shell里的关键字(可用help命令查看保留关键字)。

    按照上面的规则,变量名ab8_、a_b8、_ab8都是合格的变量名,而8ab_是不合格的变量名。

    二、变量的类型

    运行shell脚本时,会同时存在三种变量:

    (一)环境变量

    环境变量是在整个系统范围内可用的变量,并由所有衍生的子进程和外壳程序继承。所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。

    必要的时候shell脚本也可以定义环境变量。

    按照约定,环境变量应具有大写名称。

    例如我们在之前使用过的变量SHELL。 

    (二)局部变量

    局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。

    (三)shell变量

    shell变量是由shell的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行。


    三、使用变量时要注意的事项


    (一)shell中使用变量前通常不需要事先为变量作出声明,只是在使用变量时(通常是赋初始值时)来创建它们。

    例如:

    user@host: ~ # var1=1
    user@host: ~ # echo $var1
    1

    其中:

    var1=1 是声明变量var1并初始化其值为1

    echo $var1 是显示变理var1的值。


    (二)在给变量赋值时,变量名和赋值号(=)之间不能有空格。

    例如:

    user@host: ~ # var2 = 2
    未找到 'var2' 命令,您要输入的是否是:
     命令 'par2' 来自于包 'par2' (universe)
    var2:未找到命令

    由于 var2 = 2 中的赋值号=前后有空格,因此对shell来说,这条命令的功能并不是声明变量var2并初始化其值为2。

    (三)Linux是一个区分大小写的系统,所以Shell中的变量名称区也分大小写,比如var1、Var1与 VAR1是三个不同的变量名。

    user@host: ~ # var1=1
    user@host: ~ # echo $var1
    1
    user@host: ~ # echo $Var1

    user@host: ~ # echo $VAR1

    user@host: ~ # 
     

    在上面的例子中,我们声明了变量var1并初始化其值为1,并没有声明变量Var1、VAR1和赋值,所以 echo $Var1 和  echo $VAR1没有显示他们的值。

    四、 shell里的关键字

    为了方便我们定义变量,我们还需要了解shell里的关键字。

    查询shell里的关键字的方法有很多。例如,我们可以使用命令 compgen -k 来查看shell的关键字:

    user@host: ~ # compgen -k
    if
    then
    else
    elif
    fi
    case
    esac
    for
    select
    while
    until
    do
    done
    in
    function
    time
    {
    }
    !
    [[
    ]]
    coproc
    user@host: ~ # 

  • 相关阅读:
    vue制作自己的组件库(仿ElementUI)
    模板学堂丨禅道业务数据分析大屏
    Qt之元对象metaObject
    【机器学习-周志华】学习笔记-第十四章
    C++异常处理
    电力智能运维管理平台:提升电力行业运营效率与安全
    RV1126-RV1109-进入uboot的按键和名字显示-HOSTNAME
    WebGL 中的灯光设置
    java绘图技术基础
    Linux环境下fastdfs部署
  • 原文地址:https://blog.csdn.net/Purpleendurer/article/details/133470256