shell编程

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<用户名称>  指定要设定计时器的用户名称。

 

 

 

原文地址:https://www.cnblogs.com/jiangshitong/p/6619165.html