Linux shell变量

变量介绍

变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数据。脚本语言在定义变量时通常不需要指明类型,直接赋值就可以,Shell 变量也遵循这个规则。

在 Bash shell 中,每一个变量的值都是字符串,无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储。

比如:

name="laoli"
age=26

注意: 变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:

  • 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
  • 中间不能有空格,可以使用下划线 _。
  • 不能使用标点符号。
  • 不能使用bash里的关键字(可用help命令查看保留关键字)。

有效的 Shell 变量名示例如下:

BIGtiger
LD_LIBRARY_PATH
_var
var2

无效的变量命名:

?var=123
user*name=laoli

还可以用执行语句赋值

#统计error多少行
totalnum=`cat testlog|grep 'error'|wc -l`

变量使用

使用一个定义过的变量,只要在变量名前面加美元符号即可,如:

your_name="liwei"
echo $your_name
//或者 加上花括号,这个是可选的,加花括号是为了帮助解释器识别变量的边界,推进加上 可读性更好
echo ${your_name}

只读变量

使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。

#!/bin/bash

myUrl="https://www.catroom.com.cn/"
readonly myUrl
myUrl="https://www.catroom.com.cn/"

运行脚本,结果如下:

/bin/sh: NAME: This variable is read only.

删除变量

使用 unset 命令可以删除变量。语法:

unset variable_name

变量被删除后不能再次使用。unset 命令不能删除只读变量。