Shell脚本中的运算和脚本应用示例

一、运算方式及运算符号

    运算符号                意义( * 标示常用)
    +,-                    加法,减法
    *,/,%                  乘法,除法,取余
    **                     幂运算
    ++ , --                自增加,自减少
    <,<=,>,>=              比较符号 
=,+=,-=,*=,/=,%=          赋值运算 例如 a+=1 相当于 a=a+1

二、SHELL 中常用的运算命令

运算操作与运算命令        含义
(())                    用与整数运算  
let                     用于整数运算,与 (()) 类似  
expr                    用于整数运算,功能相对较多  
bc                      linux 下的计算器,适合整数及小数运算  
$[]                     用户整数运算

三、利用 (()) 进行赋值运算
脚本应用一:
数字1..10中4不显示
编写脚本

vim test2.sh

这里写图片描述
执行脚本

sh.test2.sh

这里写图片描述
脚本应用二:
写一个 10 秒倒计时的脚本
编写脚本

vim time.sh

这里写图片描述
执行脚本
查看倒计时

sh time.sh

这里写图片描述
脚本应用三:
写一个 1 分 10 秒倒计时的脚本
编写脚本

vim time1.sh

这里写图片描述
执行脚本
查看倒计时

sh time1.sh

这里写图片描述
四、其他赋值运算
脚本应用:
要求:
利用以上命令制作一个计算器要求如下
执行 Calculator.sh 后显示
请输入您要操作的数字:
请输入要操作的运算:
请输入要操作的第二个数字 :
执行后显示操作后的数值
编写脚本

vim bc.sh

这里写图片描述
执行脚本

sh bc.sh

这里写图片描述

五、脚本应用示例
脚本应用一:
批处理:在5-9主机建立用户

vim vim useradd_create.sh

这里写图片描述
执行脚本

sh useradd_create.sh userfile passfile 

然后再连接其他主机查看id是否建立

ssh root@172.25.254.5
id haha

脚本应用二:
数据库备份
要求:
执行 执行 db_dump.sh westos( 数据库密码 )
脚本执行后会备份数据库中的所有库到 /mnt/mysqldump 目录

备份文件名称为 “库名称 .sql” 当此文件存在时报错并询问动

输入“ S” 跳过备份,当输入“ B” 时备份“库名称 .sql” 文件
为“库名称 _backup.sql”, 当输入“ O” 时,覆盖源文件

编写脚本:

vim db_dump.sh

这里写图片描述
执行脚本:

 sh db_dump.sh 123   后面跟数据库密码

脚本应用三:
要求:
执行脚本 lamp.sh
脚本执行后部署好论坛,并设定 apache 的网络接口为 8080
编写脚本

vim lamp.sh
Auto_Discuz()
{
/usr/bin/expect << EOF
set timeout 30
spawn ssh root@$1
expect {
    "yes/no" { send "yes\r";exp_continue }
    "password:" { send "westos\r" }
}
expect "]#" { send "yum install httpd -y\r" }
expect "]#" { send "yum install mariadb-server -y\r"}
expect "]#" { send "yum install php-mysql.x86_64 -y\r"}
expect "]#" { send "systemctl start httpd\r" }
expect "]#" { send "systemctl start mariadb\r" }
expect eof
EOF
}
Auto_Connect()
{
/usr/bin/expect << EOF
set timeout 30
spawn ssh root@$1
expect {
    "yes/no" { send "yes\r";exp_continue }
    "password:" { send "westos\r" }
}
expect "]#" { send "cd /var/www/html/\r" }
expect "]#" { send "unzip /var/www/html/Discuz_X3.2_SC_UTF8.zip >> /dev/null \r" }
expect "]#" { send "chmod 777 /var/www/html/upload/ -R\r" }
expect "]#" { send "systemctl restart httpd\r" }
expect eof
EOF
}
Auto_Httpd()
{
/usr/bin/expect << EOF
set timeout 30
spawn ssh root@$1
expect {
    "yes/no" { send "yes\r";exp_continue }
    "password:" { send "westos\r" }
}
expect "]#" { send "sed "/^Listen/cListen 8080" -i /etc/httpd/conf/httpd.conf\r" }
expect "]#" { send "yum restart httpd -y\r" }
expect eof
EOF
}
yum install expect -y
Auto_Discuz $1
scp /home/kiosk/Downloads/Discuz_X3.2_SC_UTF8.zip root@$1:/var/www/html
Auto_Connect $1
firefox -new-tab $1/upload/install
Auto_Httpd $1

执行脚本

sh lamp.sh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值