Linux shell变量

一、本地变量
--本地变量是在用户现有的shell生命周期的脚本中使用
--本地变量详解:用户通过终端登录服务器,服务器会创建一个会话期并且启动一个shell程序,用户每登录一次,
  就会启动一个shell,所以在一个会话期里可能会启动多个shell程序
  当用户在shell程序中定义了一个shell变量,该shell变量的生存周期是用户连接到服务器到用户关闭shell
  用户关闭shell可以有两种方法,①切换用户(切换用户时,会关闭当前用户的shell,再次启动另一个shell)
  ②关闭终端
--variablename=value
    定义本地变量:MYVAR="test"  注意"="左右不要有空格,变量的值必须加上双引号,数字可以例外
    使用本地变量$MYVAR     用法:echo $MYVAR  或者 echo ${MYVAR}
--set显示本地所有的变量
--readonly variablename定义只读变量
  只读变量不能赋值

 

二、环境变量
--环境变量用于所有用户进程(经常成为子进程)。登录进程称为父进程。shell中执行的用户进程均为子进程。
不像本地变量(只用于现在的 shell),环境变量可用于所有子进程,这包括编辑器、脚本和应用程序。
--$HOME/.bash_profile(/etc/profile,所有用户都使用profile) --export 声明环境变量 export myvar="ttt" --env 查看环境变量

 

三、变量替换(显示变量)
--用变量的值替换它的名字 
--在变量前加$,使用echo命令可以显示单个变量的值
--echo ${MYVAR} 或者 echo $MYVAR
--${variablename}    显示实际值
--${variablename:+value}    若设置了variablename则显示用户自定义信息value;若未设置variablename,则显示空
--${variablename:?value}    若设置了variablename则显示variablename的值;若未设置variablename,则显示用户自定义信息value(相    
                            当于一种提示信息)
--${variablename:-value}    结果同上
--${variablename:=value}    若设置了variablename则显示variablename的值;若未设置variablename,则设置variablename的值为用户    
                            自定义信息value,并且显示variablename的值

 

四、unset
--清除变量
--unset testvar
--readonly变量不能被清除

 

五、位置变量
--$1
--详情见 Linux Shell编程一

 

六、标准变量
--bash默认建立了一些标准环境变量,可在/etc/profile中定于
--HOME    属主目录
--LOGNAME    登录用户名
--TERM    登录服务器,终端类型vt100
--PATH 标准变量
--PS1(数字1)    提示符
  echo $PS1    打印[\u@\h \W]\$
  u代表用户名  h代表主机名  w代表当前目录
  例如:[test@HP-Linux 1]$ 
--PS2 
  ">" 表示一条命令没有写完,自动换行后,shell提示符,"\"是续行符
   例子:ls -lt\
   > | wc -w

 

七、特殊变量
--$#    传递脚本的参数个数(不包含程序本身./runc,这和c语言不同)
--$*    所有的参数列表,次选项参数可以超过9个
--$$    脚本运行的当前进程ID号
--$|    后台运行的最后一个进程的进程ID号
--$@    与$#相同,但是使用时加引号,并爱引号中返回每个参数
--$-    显示shell使用的当前选项,与set命令功能相同
--$?    显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误

 

八、影响变量的命令
--declare    设置或显示变量
    -f    只显示函数名
    -r    创建只读变量
    -x    创建转出变量
    -l    创建整数变量
--shife [n]  整体参数左移n个

 

posted on 2016-11-24 21:36  寒魔影  阅读(500)  评论(0编辑  收藏  举报

导航