Shell系列(2) - shell变量

149 阅读2分钟

「4月日新计划更文活动」

变量的定义

变量的命名规范

注意点:

  • 变量名不加“美元符号”
  • 变量名和等号之间不能有空格
  • 命名只能用英文字母,数字和下划线,首字符不能以数字开头
  • 变量名中间不能有空格,可以使用下划线_
  • 不能使用标点符号
  • 不能使用bash的关键字,如以下
- `if`, `then`, `else`, `elif`, `fi`:控制结构关键字,用于条件语句控制。
- `for`, `while`, `until`, `do`, `done`:循环控制结构关键字。
- `case`, `esac`:用于维护多个条件的分支结构关键字。
- `function`:定义或声明一个函数。
- `return`:从函数中返回一个值。
- `select`:在菜单驱动的shell脚本中使用, 提供用户选项。
- `break`, `continue`:在循环中控制跳转。
- `export`:将变量导出至其他子进程能使用。
- `readonly`:将变量设置为只读。
- `declare`:用于声明变量类型和属性。
- `let`:用于执行算术运算。
- `shift`:移动命令行参数。

变量赋值

直接赋值

  • 直接引用变量的赋值
  • 语法表达式:variable_name=value
num=10
echo $num

语句赋值

  • 以命令的输出赋值给变量
  • 以下栗子🌰中,使用“$()”括号来执行命令,作为输出变量
cur_dir=$(pwd)

使用变量

  • 使用定义过的变量,只需要在变量名前加上$符号
  • 变量名外可以使用花括号,可以选择添加或者不添加
  • 花括号是为了帮助解释器识别变量的边界
name='seven'
echo $name
echo ${name}

注意

定义不需要加()符号,使用变量的时候才加美元符()符号,使用变量的时候才加美元符(

只读变量

  • 使用readonly命令可以将变量定义为只读变量
  • 只读变量的值是不可以被更改的
url="www.baidu.com"
read only url

删除变量

  • 使用unset命令可以删除变量
  • 语法格式:unset variable_name
unset  url

变量类型

  • 局部变量:仅在当前shell实例中有效,其他shell启动无法访问该局部变量
  • 环境变量:所有程序,包括启动程序,都能访问环境变量,有需要时,shell脚本也可以定义环境变量
  • shell变量:shell变量是由shell程序设置的特殊变量,shell变量中一部分是环境变量,一部分是局部变量