学习linux的朋友shell不必定要了解多深,可是写linux脚本的朋友那必须对linux shell了如指掌,小猿圈老师从shell基础提及,让咱们一块儿看一下shell变量都有哪些。python
一、本地变量linux
--本地变量是在用户现有的shell生命周期的脚本中使用shell
--本地变量详解:用户经过终端登陆服务器,服务器会建立一个会话期而且启动一个shell程序,用户每登陆一次,编程
就会启动一个shell,因此在一个会话期里可能会启动多个shell程序bash
当用户在shell程序中定义了一个shell变量,该shell变量的生存周期是用户链接到服务器到用户关闭shell服务器
用户关闭shell能够有两种方法,①切换用户(切换用户时,会关闭当前用户的shell,再次启动另外一个shell)编辑器
②关闭终端函数
--variablename=value学习
定义本地变量:MYVAR="test" 注意"="左右不要有空格,变量的值必须加上双引号,数字能够例外生命周期
使用本地变量$MYVAR 用法:echo $MYVAR 或者 echo ${MYVAR}
--set显示本地全部的变量
--readonly variablename定义只读变量
只读变量不能赋值
二、变量替换(显示变量)
--用变量的值替换它的名字
--在变量前加$,使用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的值
三、标准变量
--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
四、环境变量
--环境变量用于全部用户进程(常常成为子进程)。登陆进程称为父进程。shell中执行的用户进程均为子进程。
不像本地变量(只用于如今的 shell),环境变量可用于全部子进程,这包括编辑器、脚本和应用程序。
--$HOME/.bash_profile(/etc/profile,全部用户都使用profile)
--export 声明环境变量 export myvar="ttt"
--env 查看环境变量
五、unset
--清除变量
--unset testvar
--readonly变量不能被清除
六、位置变量
--$1
--详情见 Linux Shell编程一
七、影响变量的命令
--declare 设置或显示变量
-f 只显示函数名
-r 建立只读变量
-x 建立转出变量
-l 建立整数变量
--shife [n] 总体参数左移n个
八、特殊变量
--$# 传递脚本的参数个数(不包含程序自己./runc,这和c语言不一样)
--$* 全部的参数列表,次选项参数能够超过9个
--$$ 脚本运行的当前进程ID号
--$| 后台运行的最后一个进程的进程ID号
--$@ 与$#相同,可是使用时加引号,并爱引号中返回每一个参数
--$- 显示shell使用的当前选项,与set命令功能相同
--$? 显示最后命令的退出状态。0表示没有错误,其余任何值代表有错误
相信你们对shell变量已经有一个深刻的了解了,不论是如今是作linux 脚本的编写的,仍是之后要作这个方向的,那shell必定要好好学习,小猿圈老师对shell变量的详解就到这,想要了解更多,能够来小猿圈看一下,一块儿学习和探讨一下。