详解Linux Shell中变量

  • 定义变量

格式 变量名=XXX。需要注意的是,在定义的时候一定不要在等于号前后敲空格。变量名的格式跟学过的C++,Java等类似,开头不要用特殊字符。

#!/bin/bash
test="this is for test"
  • 使用变量

在使用变量的时候,变量名称前需要加美元符号$,更为标准的是${变量名}(下文都用这种方式,希望大家养成习惯)。例如使用echo函数进行输出时,如果不加 $ ,则会输出test,而不是变量test对应的值。

#!/bin/bash
test="this is for test"
echo ${
    
    test}

只有在使用变量的时候才需要加 $ ,在给变量重新赋值的时候,不需要使用$ 。例如

#!/bin/bash
test="this is for test"
echo ${
    
    test}
test="change test"
echo ${
    
    test}
  • 只读变量

通过readonly 变量名,该变量不能被重新赋值

#!/bin/bash
test="aaa"
readonly test
test="bbb"

运行脚本之后会报错 /bin/sh: NAME: This variable is read only.

  • 删除变量

使用unset 变量名删除变量,删除之后可以通过echo输出,输出结果为空行。

#!/bin/bash
test="this is for test"
unset test
echo ${
    
    test}

注意,unset不能删除readonly操作过的变量。

  • 变量类型

运行shell时,会同时存在三种类型的变量:
1、局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量
2、环境变量 所有的程序,包括shell地洞的程序,都能访问环境变量,有的程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
3、shell变量 shell变量是由shell程序设置的特殊变量,shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行。
也就是说,shell变量包含局部变量中的一个或多个,可同时存在,也可以存在一个,具体需要看编写的shell程序需要实现什么功能。

猜你喜欢

转载自blog.csdn.net/weixin_43716048/article/details/108825901