linux shell内置变量和常见比较

特殊的shell变量

变量

含义
$0 脚本名
$1 -$9 位置参数1-9
${10} 位置参数10
$# 位置参数的个数
"$*" 所有位置参数(作为单个字符串)
"$@" 所有位置参数(每个作为单独字符串)
${#*} 传递到脚本中的命令行参数的个数
$? 返回值
$$ 脚本进程的PID
$- 传递到脚本中的标识
$_ 之前命令的最后一个参数
$! 运行在后台的最后一个作业的进程ID(PID)

算术比较

操作符 含义
-eq 等于
-ne 不等于
-lt  (<) 小于
-le  (<=) 小于等于
-gt  (>) 大于
-ge  (>=) 大于等于

字符串比较

操作符 含义
= 等于
== 等于
!= 不等于
< 小于(ASCII)
> 大于(ASCII)
-z 字符串为空(null)
-n 字符串不为空(不为null)

    注:== 在 [] 与 [[]] 中是不同的;!= 在 [[]] 使用;<、> 在 [] 中使用需要转义(\),在 [[]] 中使用不需要; 

文件类型操作

操作符 含义
-e file 文件是否存在, 存在为真,不存在为假
-f file 标准文件(普通文件)
-d file 目录文件
-h file hard link(链接文件)
-L file link(链接文件)
-b file 块设备文件
-c file 字符设备文件
-p file 管道文件
-S file socket套接字文件
-t file 文件与终端相关联
-N file 文件最后一次读取后被修改过
-s file 文件大小不为0,文件存在且非空
-r file 文件具有读权限
-w file 文件具有写权限
-x file 文件具有执行权限
file1 -nt file2 file1比文件file2新
file1 -ot file2 file1比file2旧
file1 -ef file2 fiel1和fiel2是同一个文件的硬链接

 

 

你可能感兴趣的:(Linux常用命令和相关知识)