1.Shell中的特殊变量
$?表示上一个命令退出的状态 成功返回0 失败返回的就是不一定了 本质就是命令的返回值
$$表示当前进程的进程编号
$0表示当前脚本的名称
$n表示位置变量(n代表数字,n>=1)
$#表示变量的个数,常用于循环
$*和$@都表示参数列表
区别
$*当别双引号包含时,"$*"会将所有的参数作为一个整体,以"$1 $2 $3 ... $n"的形式输出所有的参数
"$@"会将各个参数分开,以"$1""$2"..."$n"的形式输出所有的参数
2.for循环
第一种
for p $*
do
echo $p
done
第二种
for((i=0;i<=5;i++))
do
echo "hello"
done
3.while循环
第一种
while expression(布尔表达式)
do
...
done
第二种
i=1
while((i<=3))
do
echo $i
let i++
done
4.case语句
格式
case $1 in
start)
echo "starting"
;;(一定要写)
stop)
echo "stoping"
;;
*)
echo "都不是"
esac
5.运算符
格式:expr m + n 或$((m+n))注意expr运算符之间要有空格
例如计算(2+3) x 4的值
1.分步计算
S=`expr 2 + 3`
expr $S \* 4
2.一步完成
expr `expr\`expr 2 + 3\`\*4
或者$(((2+3)*4))
6.read命令(从终端获取输入参数)
read -p "将要显示得提示信息" -n(字符个数) -t(等待时间)
例如:
read -p "请输入姓名:" c(这个是用来存储这个输入得信息得)
7.if判断
语法
if condition
then
statements
[elif condition
then
statements ...]
[else
statements]
fi
例如
if [ $NAME=root ]
then
echo "hello ${NAME},welcome!"
elif [ $NAME=CentOS1 ]
then
echo "hello ${NAME},welcome!"
else
echo "hello"
fi
8.判断语句
[ condition ] && echo ok || echo notok
满足执行ok 不满足执行 notok
9.常用判断条件
常用比较条件
= 字符串比较
-lt 小于
-le 大于等于
-eq 等于
-gt 大于
-ge 大于等于
-ne 不等于
对文件得判断
-r 有读得权限
-w 有写得权限
-x 有执行得条件
-f 文件存在并且是一个常规文件
-s 文件存在且不为空
-d 文件存在并且是一个目录
-b 文件存在并且是一块设备
-L 文件存在并且是一个链接
10.Shell自定义函数
语法
function funname[()]
{
...;
[ return int; ]
}
11.shell程序得调试
sh -vx xxx.sh