shell脚本实例

领导有需求,运维来完成。

需求:获取每个库里的注册数登录数,需要执行脚本1.sh login/register输出6个库登录/注册的总数,脚本如下。 

好久没写shell了,把shell的数组和python的数组语法搞混了,几个注意事项记录一下。

注意事项:

python的数组是arr = (1,2,3,4,5)

shell的数组是arr=(1 2 3 4 5)

python的是用逗号分隔,shell是用空格分隔

python变量名两边都要有空格(没有也可以,一般都隔开,代码规范),shell都不能有空格(定义函数名除外)

python的if是没有[]和then的,不用fi结尾,python判断字符串相等是两个=

shell的if则需要[]和then,必须fi结尾,判断字符串是一个=

 

#!/bin/bash
#定义服务器地址
server=("localhost" "localhost" "localhost" "localhost" "localhost" "localhost")
#定义用户名
name=("root" "root" "root" "root" "root" "root")
#定义密码
passwd=("111111" "111111" "111111" "111111" "111111" "111111")
#定义获取登录数的sql
login_sql="select count(1) from login_tb"
#定义获取注册数的sql
register_sql="select count(1) from reg_tb"


#设置总和的值,起始是0
sum=0
#定义函数exe_func
exe_func(){
#循环几次,几个库,0-5是6个库
for i in `seq 0 5`
do
   #获取库名
   db_name="zuishilaoweng"
   #判断是不是登录
   if [ $1 = "login" ];
   then
      #获取每一个库里登录的数据
      now_sum=`/usr/local/mysql/bin/mysql -h ${server[$i]} -D $db_name -u ${name[$i]}  -p"${passwd[$i]}" -N -B -e "$login_sql"`
   #判断是不是注册
   elif [ $1 = "register" ];then
      #获取每一个库里注册的数据
      now_sum=`/usr/local/mysql/bin/mysql -h ${server[$i]} -D $db_name -u ${name[$i]}  -p"${passwd[$i]}" -N -B -e "$register_sql"`
   fi
   #将和相加
   sum=`expr $sum + $now_sum`
#结束循环
done
#打印出总数
echo $sum
}

#开始判断
case $1 in
    #判断是不是登录
	"login")
	    #获取登录的总数
        login_sum=`exe_func login`
        #打印信息
    	echo "登录的总数是: $login_sum";;
    #判断是不是注册
    "register")
        #获取注册的总数
        register_sum=`exe_func register`
        #打印信息
	    echo "注册的总数是: $register_sum";;
     *)
        #打印提示信息
        echo "input \"login\" or \"register\"";;
esac

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值