shell编程
一.运算符
1.算数运算符
+ - * /
2.关系
< > <= >= == != && ||
3.赋值运算符
+ += *= /= %=
4.字符串
= != -z空 -n非空
5.数值
-eq 等于
-ne 不等于
-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于
举例:
1.
#!/bin/bash
var='/etc/init.d'
var='/etc/passwd'
if [ -d $var ]
then
echo "$var is dictionary"
elif [ -b $var ]
then
echo "$var is block"
elif [ -f $var ]
then
echo "$var is regular file"
else
echo 'unknow'
fi
2.
i test.sh
#test.sh
echo $0
echo $1
echo $2
echo $3
echo ${11}
echo '$$' $$ 这个进程的pid
echo '$*' $* 所有的
echo '$@' $@ 所有的
echo '$#' $# 总共多少个
echo '$?' $? 执行是否正确的输出
[root@localhost tmp]# ./test.sh 1 2 3 4 5 6 7 8 9 10 11
./test.sh
1
2
3
11
$$ 7800
$* 1 2 3 4 5 6 7 8 9 10 11
$@ 1 2 3 4 5 6 7 8 9 10 11
$# 11
$? 0
3.
检查本地网络空闲地址
for i in {1..253}
do
ping 192.168.16.$i &> /dev/null
if [ $? -ne 0 ]
then
echo "192.168.16.$i is available"
else
echo "192.168.16.$i is unavailable"
fi
done
4.
function abc( ){
echo 'aaa';
echo 'bbb';
}
abc
function install(){
yum install ...;
if []
}
funciton start(){
echo '----';
return 1
}
start
if [ $1 ='install' ]
then
install
elif [ "$1" = 'start' ]
then
start
else
echo 'cmd not find'
5.
#!/bin/bash
var1=AAA
var2=BBB
var3=CCC
while :
do
clear
echo -e "A:${var1}
B:${var2}
C:${var3}"
temp=$var1
var1=$var2
var2=$temp
sleep 1
done
6.
#!/bin/bash
while :
do
read -p 'please input your name: ' name
read -p 'please input your password: ' psd
if [ $name = 'alex' -a $psd = 'alex3714' ]
then
echo 'login successful,welcome da sB'
while :
do
read -p 'please input your cmd: ' cmd
if [ "$cmd" = 'quit' ]
then
break
fi
$cmd
done
else
echo 'username or password is error'
fi
done
echo '--------------'
7.
ps aux |grep 'nginx' |grep -v 'grep' &>/dev/null
if [ $? -ne 0 ]
then
systemctl restart nginx
fi
二.crontab定时任务
语 法:crontab [-u <用户名称>][配置文件] 或 crontab [-u <用户名称>][-elr]
crontab任务配置基本格式:
* * * * * command
分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期(0-6,0代表星期天) 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
参 数:
-e 编辑该用户的计时器设置。
-l 列出该用户的计时器设置。
-r 删除该用户的计时器设置。
-u<用户名称> 指定要设定计时器的用户名称。