当前位置: 首页 > Linux

小源泉里的linuxshell变量

时间:2023-04-06 20:34:41 Linux

学习linux的朋友不一定对shell了解很多,但是写linux脚本的朋友一定对linuxshell很了解。小源泉老师从shell的基础知识入手,让我们一起来看看shell变量有哪些。1.局部变量--用户已有的shell生命周期脚本中使用的局部变量--局部变量详解:当用户通过终端登录服务器时,服务器会创建一个session并启动一个shell程序。每次用户登录时,都会启动一个shell,所以一个session可能会启动多个shell程序。当用户在shell程序中定义一个shell变量时,shell变量的生命周期就是从用户连接服务器到用户关闭shell。用户可以关闭shell有两种方法,①切换用户(切换用户时会关闭当前用户的shell,重新启动另一个shell)②关闭终端--variablename=value定义局部变量:MYVAR="test"注意"="不要有左右空格,变量的值必须加双引号,数字可以例外使用局部变量$MYVAR用法:echo$MYVAR或echo${MYVAR}--set显示所有局部变量--readonlyvariablename定义只读变量read-onlyvariablescannotAssignment2、变量替换(显示变量)——用变量的值替换它的名字——在变量前加$,使用echo命令显示单个变量的值——echo${MYVAR}或echo$MYVAR--${variablename}显示实际值--${variablename:+value}如果设置了variablename,则显示用户自定义信息价值;如果没有设置variablename,则显示为空--${variablename:?value}如果设置了variablename,则显示variablename的值;如果不设置variablename,则显示用户自定义信息值(相当于提示信息)--${variablename:-value}结果同上--${variablename:=value}如果设置了variablename,会显示variablename的值;如果未设置variablename,则将variablename的值设置为用户自定义信息值,并显示variablename的值配置文件定义在--HOME所有者目录--LOGNAME登录用户名--TERM登录服务器,终端类型vt100--PATH标准变量--PS1(编号1)提示echo$PS1print[\u@\h\W]\$u代表用户名h代表主机名w代表当前目录例如:[test@HP-Linux1]$--PS2">"表示一个命令没有执行完,自动执行后换行符,shell提示符,""是续行符的例子:ls-lt\|wc-w4,环境变量——环境变量用于所有用户进程(经常成为子进程),登录进程称为父进程。在shell中执行的所有用户进程都是子进程。与局部变量(仅由当前shell使用)不同,环境变量可用于所有子进程,包括编辑器、脚本和应用程序。--$HOME/.bash_profile(/etc/profile,所有用户使用profile)--exportdeclareenvironmentvariableexportmyvar="ttt"--env查看环境变量5,unset--clearvariable--unsettestvar--readonly变量不能清除6.位置变量--$1--详见LinuxShellProgramming17.影响变量的命令--declare设置或显示变量-f只显示函数名-r创建只读变量-xCreateexportVariable-lCreateanintegervariable--shife[n]整体参数左移n8,特殊变量--$#传递给脚本的参数个数(不包括程序本身./runc,与c语言不同)--$*所有参数列表,子选项参数可以大于9个--$$当前运行脚本的进程ID号--$|后台运行的最后一个进程的进程ID号--$@与$#相同,但是使用时加引号,用引号返回每个参数--$-显示shell当前使用的选项,其中与set命令功能相同--$?显示最后一个命令的退出状态。0表示没有错误,任何其他值表示有错误。相信大家都对shell变量有了深入的了解。不管现在写linux脚本还是以后写linux脚本,一定要学好shell。小源泉老师对shell变量的详解到此结束。想要了解更多,可以来小源泉看看,一起学习讨论。