您的位置:首页 > 运维架构 > Shell

bash变量

2016-07-03 15:01 323 查看

变量的基本解释

变量就是存储空间的内容引用到需要使用的地方,变量名存储就是内存中资源对应的某个地址。

变量赋值:NAME=VALUE

>把VALUE存储到NAME指向的内存空间中;


变量为什么有类型?

- :存储空间、存储格式、参与的运算、……
- 类型不同决定对数据的处理方式不同


变量命名:只能使用字母、数字和下划线;而且不能以数字开头;

变量名:见名知义;不能使用程序保留字,例如if、case、then、fi、esac、for、while、until、break、continue等等;

变量引用

:NAME,NAME

变量替换:把变量引用符号出现的位置替换为其指向的内存空间中的数据;

bash变量种类:

本地变量:作用域为当前shell进程;不包括其子进程;

set 变量名=值

环境变量:使用域为当前shell进程及其子进程;

注意:bash内嵌了许多环境变量,名称为全大写字母,例如UID、HOME、PWD、SHELL, PATH, HISTSIZE等等;

环境变量查看:

export, declare -x

env, printenv

撤销环境变量:

unset NAME

局部变量

作用域:当前代码块

local 变量名=值

位置参数变量:

在命令行地方输入脚本参数,第一个参数对应脚本变量$1,第二个对应$2依次自动对应


特殊变量

保持某些特殊数据
$? 上一个命令执行状态返回值
$# 参数的个数
$* 参数列表,引用所有的位置参数
$@ 参数列表,引用所有的位置参数
$0  命令本身  脚本本身


本地变量:

变量赋值:NAME=VALUE

查看变量:set

撤销变量:unset NAME

注意:此处非为变量引用,因此不能使用$;

所有的本地变量在shell进程终止时,会被自动撤销;

只读变量:常量

(1) declare -r NAME

(2) readonly NAME

变量声明和赋值:

declare -x NAME[=VALUE]

export NAME[=VALUE]

不支持重新赋值,也不支持撤销操作;

# declare -r username=`whoami`
# echo $username
root
# unset username
-bash: unset: username: cannot unset: readonly variable
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  bash