shell使用中用到得参数详解(包括if中参数)(20200604更新)

1.shell脚本if判断变量介绍

[ -a FILE ]	如果 FILE 存在则为真
[ -b FILE ]	如果 FILE 存在且是一个块特殊文件则为真
[ -c FILE ]	如果 FILE 存在且是一个字特殊文件则为真
[ -d FILE ]	如果 目录存在则为真
[ -e FILE ]	如果 FILE 存在则为真
[ -f FILE ]	如果 FILE 存在且是一个普通文件则为真
[ -g FILE ]	如果 FILE 存在且已经设置了SGID则为真
[ -h FILE ]	如果 FILE 存在且是一个符号连接则为真
[ -k FILE ]	如果 FILE 存在且已经设置了粘制位则为真
[ -r FILE ]	如果 FILE 存在且是可读的则为真
[ -s FILE ]	如果 FILE 存在且大小不为0则为真
[ -t FD   ]	如果文件描述符 FD 打开且指向一个终端则为真
[ -u FILE ]	如果 FILE 存在且设置了SUID (set user ID)则为真
[ -w FILE ]	如果 FILE 如果 FILE 存在且是可写的则为真
[ -x FILE ]	如果 FILE 存在且是可执行的则为真
[ -O FILE ]	如果 FILE 存在且属有效用户ID则为真
[ -G FILE ]	如果 FILE 存在且属有效用户组则为真
[ -L FILE ]	如果 FILE 存在且是一个符号连接则为真
[ -N FILE ]	如果 FILE 存在 and has been mod如果ied since it was last read则为真
[ -S FILE ]	如果 FILE 存在且是一个套接字则为真
[ -z STRING ]	“STRING” 的长度为零则为真

2.逻辑判断

-a		与
-o		或
!		非
!=		不等于

3.数字比较

-eq	等于
-ne	不等于
-gt	大于
-ge	大于等于
-lt	小于
-le	小于等于

4.字符串判断

str1  = str2	两个字符串完全相等为真
str1 != str2	两个字符串不完全相等为真
 -n     str1	当串的长度大于0时为真(串非空)
 -z     str1	当串的长度为0时为真(空串)
str1			当串str1为非空时为真

------------------------------------------------------------20200603更新
5.特殊参数

$n	传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2
$#	传递给脚本或函数的参数个数
$*	传递给脚本或函数的所有参数
$@	传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同
$?	上个命令的退出状态,或函数的返回值
$$	当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID

$* 和 $@ 的区别:

$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" “)包含时,都以”$1" “ 2 " … " 2" … " 2""n” 的形式输出所有参数。但是当它们被双引号(" “)包含时,”$*" 会将所有的参数作为一个整体,以"$1 $2 … n " 的 形 式 输 出 所 有 参 数 ; " n"的形式输出所有参数;" n""@" 会将各个参数分开,以"$1" “ 2 " … " 2" … " 2""n” 的形式输出所有参数。
------------------------------------------------------------20200604更新
[ -d FILE ] 如果 文件夹 存在则为真
------------------------------------------------------------20200723更新

你可能感兴趣的:(shell,linux)