shell是一种脚本语言,可以说是一种Linux中应用比较频繁的语言或者说是工具(自我认为)了吧,以下是个人自己总结的一些shell的基础的一些。
一、系统变量(内置bash变量)
$?:上一条命令执行后返回状态
$$:当前所在进程的进程号
$!:后台运行的最后一个进程号
!$:调用最后一条命令历史的参数
$#:脚本后面接的所有的参数的个数
$*:脚本后面所有参数,参数当成一个整体输出,每个变量参数之间以空格隔开
$@:脚本后面所有参数,参数是独立也是全部输出
$0:当前执行的进程/程序名
$1-$9:位置的参数变量
二、条件判断test/[]/[[]]
1、文件存在与否
-e:是否存在
-f:是否为普通文件
-d:是否为目录
-s:socket
-b:block块设备
-L:软连接
2、文件权限相关
-r:当前用户对其是否可读
-w:当前用户对其是否可写
-x:当前用户对其是否可执行
-u:是否有suid
-g:是否有sgid
-k:是否有黏滞位
3、两个文件比较判断
-nt:比较f1是否比f2新
-ot:比较f1是否比f2旧
-ef:比较是否为同一个文件,用于判断硬链接
4、整数之间的判断
-eq:相等
-ne:不等
-gt:大于
-lt:小于
-ge:大于等于
-le:小于等于
5、字符串之间的判断
-z:是否为空字符串
-n:是否为非空字符串
=:是否相等
!=:不等
6、多重条件判断
&&:逻辑与,两个条件同时满足,整个大条件为真
||:逻辑或,两个条件任意满足一个,整个大条件为真
三、流程控制语句
1、基本的流程控制语句
if [条件];then
command
fi
2、有两个需求的时候
if [条件];then
command1
else
command2
fi
3、多个条件的时候
当条件以为满足,执行命令一后结束,如果条件一不满足,再看条件二,如果条件二满足执行命令二结束,如果条件一和条件二都不满足,执行命令三结束。
if [条件1];then
command1
elif [条件2];then
command2
else
command3
fi
以上就是很基础的一些,后面将会有循环语句以及函数的一些。