读书人

shell中惯用系统变量和条件判断

发布时间: 2012-07-30 16:19:05 作者: rapoo

shell中常用系统变量和条件判断

转载自:http://apps.hi.baidu.com/share/detail/2142340

?

?

常用系统变量
$0 当前程序的名称
$n 当前程序的第n个参数,n=1,2,…9
$* 当前程序的所有参数(不包括程序本身)
$# 当前程序的参数个数(不包括程序本身)
$$ 当前程序的PID

$@ 与$#相同,但是使用时加引号,并在引号中返回每个参数
$- 显示shell使用的当前选项,与set命令功能相同
$! 执行上一个指令的PID(好像不行?)
$? 执行上一个指令的返回值


条件判断:expression为字符串操作
-n str?? 字符串str是否不为空
-z str?? 字符串str是否为空
str1 =str2 str1是否与str2相同
str1!=str2 str1是否与str2不同条件判断:expression为整数操作
expr1 -a expr2 如果 expr1 和 expr2 评估为真,则为真?
expr1 -o expr2 如果 expr1 或 expr2 评估为真,则为真条件判断:expression为bool操作
int1 -eq int2 如果int1等于int2,则为真
int1 -ge int2 如果int1大于或等于int2,则为真
int1 -gt int2 如果int1大于int2 ,则为真
int1 -le int2 如果int1小于或等于int2 ,则为真
int1 -lt int2 如果int1小于int2 ,则为真
int1 -ne int2 如果int1不等于int2 ,则为真

?

条件判断:expression为文件操作
-b 是否块文件??? -p 文件是否为一个命名管道
-c 是否字符文件??? -r 文件是否可读
-d 是否一个目录??? -s 文件的长度是否不为零
-e 文件是否存在??? -S 是否为套接字文件
-f 是否普通文件??? -x 文件是否可执行,则为真
-g 是否设置了文件的 SGID 位 -u 是否设置了文件的 SUID 位
-G 文件是否存在且归该组所有 -w 文件是否可写,则为真
-k 文件是否设置了的粘贴位?? -t fd fd 是否是一个与终端相连的打开的文件描述符(fd 默认为 1)?
-O 文件是否存在且归该用户所有

?

?

常用环境变量

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

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

echo $SHEL???????表示当前用户的登录Shell,值与”passwd”文件中的Shell字段一致

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

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

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

?

?

?

读书人网 >操作系统

热点推荐