小猿圈之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变量的详解就到这,想要了解更多,可以来小猿圈看一下,一起学习和探讨一下。

猜你喜欢

转载自www.cnblogs.com/xiaoyuanquan/p/11002719.html