常见系统变量
$0:当前脚本名称
$n:当前脚本的第n个参数
$* :当前脚本的所有参数
$# :当前脚本的参数的个数
$? :上条命令或程序执行后的状态,返回0表示执行成功
$$:程序本身的PID号
常见环境变量
PATH 命令所示的路径,以冒号为分割
HOME 打印用户家目录
SHELL 显示当前shell类型
ID 打印当前用户名
PWD 显示当前所在路径
HOSTNAME 显示当前主机名
常见用户变量(等号两边不能有空格)
A=5
N_soft=nginx-1.0
IP1=192.168.0.1
if常见的判断逻辑运算符
-f 判断文件是否存在 if [ -f filename ]
-d 判断目录是否存在 if [ ! -d /date -a ! -d /tmp ] #注意每个参数间需要有空格
-eq 等于equal -ne 不等于not equal -lt 小于letter -gt 大于greater
-le 小于或等于letter equal -ge 大于或等于greater equal (应用于整型比较)
-a 双方都成立and,用法为逻辑表达式
-o 单方成立or,逻辑表达式
-z 空字符串,判断是否为空
|| 单方成立
&& 双方都成立表达式
scores=$1
if [[ $scores -eq 100 ]]; then
echo "very good!";
elif [[$scores -gt 85 ]];then # $号前无空格,语法错误
echo "good!";
elif[[ $scores -lt 85 ]]; then #此行elif后无空格,语法错误
echo "pass"
fi
if 判断括号区别
() 用于多个命令组、命令替换、初始化数值
(()) 整数扩展、运算符、重定义变量值,算术运算比较
[] bash内部命令,[ 与test是等同的,正则字符范围、引用数组元素编号,不支持数学运算,逻辑测试使用-a 、-o
[[]] bash程序语言的关键字,不是一个命令,逻辑测试使用&& ||
{} 主要用于命令集合或者范围,例如 mkdir -p /data/20{aa,bb}/