Linux

关于shell变量

shell变量简介:

为灵活管理Linux系统提供特定参数,有两层意思

变量名:使用固定的名称,由系统预设或用户定义

变量值:能够根据用户设置、系统环境变化而变化

shell变量的种类:

用户自定义变量:由用户自己定义、修改和使用(只用于该用户)

环境变量: 由系统维护,用于设置用户的shell工作环境,只有极少数的变量用户可以修改

预定义变量:bash预定义的特殊变量,不能直接修改

位置变量:通过命令行给程序传递执行参数

 

常用系统变量

$0:当前程序的名称

$n:当前程序的第n个参数,n=1,2,…9

$*:当前程序的所有参数(不包括程序本身)

$#:当前程序的参数个数(不包括程序本身)

$$:当前程序的PID

$@:与$*相同,但是使用时加引号,并在引号中返回每个参数

$-:显示shell使用的当前选项,与set命令功能相同

$!:执行上一个指令的PID(好像不行?)

$?:执行上一个指令的返回值

 

常用环境变量:

$USER   :表示当前用户的登录名称,值与whoami命令的结果一致

$UID      :表示当前用户的ID,该变量的值与id-u命令的结果一致

$SHELL  :表示当前用户的登录Shell,值与passwd文件中的Shell字段一致

$HOME :表示当前用户的登录目录(宿主目录),值与”psaawd”文件中home字段一致

$PWD   :表示用户当前所在的目录,值与pwd命令的结果一致

$PATH   :表示当前用户的命令搜索路径,即用户不指定全路径名执行命令,Shell程序将在哪些目录以及按照何种顺序进行命令的搜索

 

定义新的变量:变量名要以英文字母或下划线开头,区分大小写

格式:变量名=变量值

调用变量:${变量名}

结合不同的引号为变量赋值:

单引号’’:禁引用其他变量值,任何符号都视为普通字符

双引号””:允许通过$符号引用其他变量值

反撇号` `:将命令执行的结果输出给变量(嵌套用$(……))

 

原创文章,转载请注明: 转载自STM本文链接地址:关于shell变量

发表评论

电子邮件地址不会被公开。 必填项已用*标注