bash变量特性 变量和常量在以前学C的时候就知道,所谓变量就是可以变化的量,就如数学中的x,而常量就是就是不变的量,比如常数,1,2,3.....等等
但是在bash不大一样:我们有一些定义;
变量:一段有名称的连续的内存空间;这段内存空间的名称,称为变量名;在这段内存空间中存储的数据,则称为变量值; 因为数据要想在内存中,必须以一些二进制的值存在,我们叫做存在值。不论是什么,都是一些数值而已。 给内存空间(变量)中存储数据的过程,称为赋值操作;赋值符号通常为“=”这个操作的话,在很多语言中都有有涉及,有点语言基础都会知道。
变量的类型:
变量:(这一点PHP和bash就很像) 强变量:使用之前必须事先予以声明:必须声明变量类型; 弱变量:使用之前无需声明,无需指明变量类型;(bash变量)
变量的赋值方法: VARNAME=VALUE 其解释为,将某数值(VALUE)通过赋值操作(=)存储于特定的内存空间中(VARNAME);
bash中变量名称的命名规范: 1.变量名只能以"_"或"字母"为起始字符,后面的其他字符可以是任意字母,数字,下划线; 2.变量名中字母是大小写敏感的; 3.命名的书写格式: 全大写:HISTSIZE 全小写:myvar 驼峰式: MyNewVariable 连接式:My_New_Var 4.变量名要能做到见名知意(很重要,毕竟作为程序员,要换位思考别人理解自己的程序) 5.变量名不能与一直变量或bash的内置变量重复;(一旦重复,则凡事依赖此变量的程序都会受到影响)
bash中变量有哪些种类; 根据变量的作用范围: 全局变量(环境变量):作用范围为整个shell进程,包括其子shell; 本地变量:作用范围为当前登录时大所打开的shell进程,不包括其子shell; 局部变量(local):作用范围仅仅只是当前程序段,一般用于函数; 根据变量的声明方式划分: bash内置变量: 普通的内置变量:HISTSIZE,... 位置参数变量:$0,$1,$2,...[(touch a b c d )touch为$0,依次又空格往后推] 特殊变量:$?,$#,$*,$@,$$,..(等我理解了,我会在写出来) 自定义变量:
变量的使用: 1.变量的声明和赋值:(自定义)变量
1)声明全局变量(环境变量) export VARNAME export VARNAME=VALUE
declare命令:设置变量值和属性 Set variable values and attributes. 格式: declare [-aAfFgilrtux] [-p] [name[=value] ...] 选项: -a:声明索引数组(如果支持); -A:声明关联数组(如果支持); -i:声明整型变量; -l:声明变量并将变量值中的字母转换成小写字母; -u:声明变量并将变量值中的字母转换成大写字母; -r:声明只读变量;意味着该变量仅能进行一次赋值操作; -x:声明变量并将其导出为全局变量;声明一个全局变量
declare -x VARNAME[VALUE]
2)声明本地命令: VARNAME=VALUE
3)声明局部变量 local VARNAME[=VALUE]
下边是一个例子:很简单的一个例子
[root@localhosttest]#exportMYVAR='testinfo'
[root@localhosttest]#echo$MYVAR
testinfo
[root@localhosttest]#csh
[root@localhosttest]#echo$0
csh
[root@localhosttest]#echo$MYVAR
testinfo
[root@localhosttest]#VAR='bashvar'
[root@localhosttest]#echo$VAR
bashvar
[root@localhosttest]#csh
[root@localhosttest]#echo$0
csh
[root@localhosttest]#echo$VAR
VAR:Undefinedvariable.
[root@localhosttest]#exit
exit
[root@localhosttest]#exportVAR
[root@localhosttest]#csh
[root@localhosttest]#echo$0
csh
[root@localhosttest]#echo$VAR
bashvar
2.查看环境变量: set命令: 可以查看和改变shell属性的值及查看shell变量的变量名和变量值 export: 查看变量名称,也可以为变量赋值; env命令:0 3.查看变量的值: echo ${VARNAME} 4.撤销变量的赋值及变量声明 unset VARNAME 有关于保存变量的shell配置文件: 通用配置文件: /etc/bashrc /etc/profile /etc/profilr.d/* 私人配置文件: ~/.bashrc ~/.bash_profile 注意: 1.一般情况下,变量都是随意随声明,除非有必要,否则不建议修改配置文件的内容; 2.声明的变量在使用完之后,最好使用unset命令予以撤销; (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|