小猿圈之Linux shell变量
作者:互联网
学习linux的朋友shell不一定要了解多深,但是写linux脚本的朋友那必须对linux shell了如指掌,小猿圈老师从shell基础说起,让我们一起看一下shell变量都有哪些。
1、本地变量
--本地变量是在用户现有的shell生命周期的脚本中使用
--本地变量详解:用户通过终端登录服务器,服务器会创建一个会话期并且启动一个shell程序,用户每登录一次,
就会启动一个shell,所以在一个会话期里可能会启动多个shell程序
当用户在shell程序中定义了一个shell变量,该shell变量的生存周期是用户连接到服务器到用户关闭shell
用户关闭shell可以有两种方法,①切换用户(切换用户时,会关闭当前用户的shell,再次启动另一个shell)
②关闭终端
--variablename=value
定义本地变量:MYVAR="test" 注意"="左右不要有空格,变量的值必须加上双引号,数字可以例外
使用本地变量$MYVAR 用法:echo $MYVAR 或者 echo ${MYVAR}
--set显示本地所有的变量
--readonly variablename定义只读变量
只读变量不能赋值
2、变量替换(显示变量)
--用变量的值替换它的名字
--在变量前加$,使用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的值
3、标准变量
--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
4、环境变量
--环境变量用于所有用户进程(经常成为子进程)。登录进程称为父进程。shell中执行的用户进程均为子进程。
不像本地变量(只用于现在的 shell),环境变量可用于所有子进程,这包括编辑器、脚本和应用程序。
--$HOME/.bash_profile(/etc/profile,所有用户都使用profile)
--export 声明环境变量 export myvar="ttt"
--env 查看环境变量
5、unset
--清除变量
--unset testvar
--readonly变量不能被清除
6、位置变量
--$1
--详情见 Linux Shell编程一
7、影响变量的命令
--declare 设置或显示变量
-f 只显示函数名
-r 创建只读变量
-x 创建转出变量
-l 创建整数变量
--shife [n] 整体参数左移n个
8、特殊变量
--$# 传递脚本的参数个数(不包含程序本身./runc,这和c语言不同)
--$* 所有的参数列表,次选项参数可以超过9个
--$$ 脚本运行的当前进程ID号
--$| 后台运行的最后一个进程的进程ID号
--$@ 与$#相同,但是使用时加引号,并爱引号中返回每个参数
--$- 显示shell使用的当前选项,与set命令功能相同
--$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误
相信大家对shell变量已经有一个深入的了解了,不管是现在是做linux 脚本的编写的,还是以后要做这个方向的,那shell一定要好好学习,小猿圈老师对shell变量的详解就到这,想要了解更多,可以来小猿圈看一下,一起学习和探讨一下。
标签:shell,变量,用户,value,小猿圈,Linux,MYVAR,variablename 来源: https://blog.csdn.net/qq_42210792/article/details/91419264