Shell变量学习

Shell变量

 

-本地变量:在用户现在的shell生命期的脚本中使用,若shell启动另一个进程或退出,该变量值无效
-环境变量:用于所有用户进程(子进程),环境变量可以在命令行中设置,但用户注销时变量值丢失。可将此变量放入.profile文件中使每次登录使这些值都被初始化
-特定变量参数
-位置变量参数

 

本地变量

 

命名:可以任何不包含空白字元的字串来当做变量名称
显示:echo可以显示单个变量取值(变量使用时名字前加$)
清除:可用unset命令清除变量,即:unset  v-name
查看所有本地变量:可用set命令显示所有本地定义的变量
只读变量:在设值变量后加命令:readonly v-name,即将变量设为只读方式,任何人试图改变它均返回错误信息,用readonly命令可察看所有只读变量

 

环境变量

 

使用方式与本地变量一致
环境变量设置时必须用export导出,其格式为
    V-NAME=value; export  V-NAME   (或舍去分号,分写成两行)
查看所有环境变量使用env命令
常用预留环境变量
EDITOR 设置编辑器,如: EDITOR=vi; export EDITOR
PWD       当前路径名
MANPATH  保存系统上man文本目录,目录间用冒号分隔,如
                MANPATH=/usr/apps/man:/usr/local/man;export MANPATH

 

特定变量参数&位置变量参数

 

用以表示脚本运行时的一些相关信息,这些变量一开始执行脚本时就会设定,并且不能被修改,被称作特定变量参数。如:
$0    当前脚本的文件名
$#    当前脚本的参数个数     
$*    以一个单字符串显示所有向脚本传递的参数
$$    脚本运行的当前进程PID 
$!     后台运行的最后一个进程的PID 
$?    显示最后命令的退出状态。0表示没有错误,其他任何值均表明有错误
位置变量参数可以完成向一个shell脚本传递信息的功能,位置参数可任意多,但只有前9个被访问,以$n表示当前脚本的第n个参数值,其中n=1..9 

 

变量引用

 

在脚本中执行变量替换时最容易犯的错误就是由于引用错误。为防止引用时产生误解,shell有一下引用类型
双引号“”:可引用除$、`、\外任意字符或字符串,最好在反馈文本字符串时全使用双引号
单引号‘’:可引用引号里所有字符(包括引号)
    $ A=‘a’  
    $ echo $A      输出结果为  a             
    $ echo “$A”   输出结果为  a 
    $ echo ‘$A’    输出结果为  $A
反引号``:设置系统命令输出到变量,shell将反引号内作为一个系统命令并执行
    $ echo `date`  输出系统时间           
    $ echo date    输出结果为date
反斜线\ :屏蔽其下一字符的特殊含义(& * + ^ $ ` “ | ? )
    $ echo *    打印当前整个目录列表    
    $ echo \*    输出结果为  *

 

 

你可能感兴趣的:(shell)