Shell编程基础

1、变量
#将命令返回给变量
DATE1=$(date)
DATE2=`cal`
echo "$DATE1"
echo "$DATE2"

#系统变量
echo "系统变量:$USER"

## 变量
NUM=100
echo "变量:$NUM"
# 撤销变量
unset NUM
echo "撤销变量:$NUM"
# 静态变量
readonly A=100
echo "静态变量A=$A"
# 位置参数变量
echo "第0、1、2个参数:$0 $1 $2"
echo "所有参数:$*"
echo "参数列表:$@"
echo "参数个数:$#"
2、运算符
## 运算
RES1=$[(3+5)*4]
RES2=$(((3+5)*4))
RES3=`expr 2 \* 5`
echo "运算1:res1=$RES1"
echo "运算2:res2=$RES2"
echo "运算3:res3=$RES3"
3、条件判断
## 条件判断
SCORE=$1
if [ $SCORE -ge 60 ]
then
	echo "及格"
elif [ $SCORE -lt 60 ]
then 
	echo "不及格"
fi
4、case语句
## case语句
case $1 in
"1")
echo “周一”
;; 
"2")
echo “周二”
;;
*)
echo "other"
;;
esac
5、for循环
## for循环
# $*
for i in "$*"
do
	echo "the num is $i"
done 
# $@
for j in "$@"
do 
	echo "the num is $j"
done
# for循环求和
SUM=0
for((i=1;i<=100;i++))
do
	SUM=$[$SUM+$i]
done
echo "SUM=$SUM"
6、while循环
## while循环
COUNT=0
i=0
while [ $i -le $1 ]
do
	COUNT=$[$COUNT+$i]
	i=$[$i+1]
done
echo "count=$COUNT"
7、read读取控制台输入
## read读取控制台输入
read -p "请输入一个数:" NUM1
echo "你输入的值为:$NUM1"

read -t 10 -p "请在10秒内输入一个数:" NUM2
echo "你输入的值为:$NUM2"
8、函数
## 函数
# basename:返回文件名
echo $(basename /home/hsb/hello.sh)
echo $(basename /home/hsb/hello.sh .sh)
# dirname:返回文件的路径
echo $(dirname /home/hsb/hello.sh)
# 自定义函数 [ function ] funName[()]{}
function getSum(){
	SUM=$[$n1+$n2]
	echo "n1+n2=$SUM"
}
read -p "请输入n1:" n1
read -p "请输入n2:" n2
getSum $n1 $n2
9、实战案例

1)每天凌晨2:20备份数据库blog到/data/backup/db

2)以时间为文件名,打包成.tar.gz格式

3)检查7天前备份的数据文件,如果存在则删除

#!/bin/bash

#备份文件目录
DATETIME=$(date +%Y_%m_%d_%H%M%S)
#备份路径
PATH=/data/backup/db
#主机
HOST=localhost
#用户名
USERNAME=root
#密码
PASSWORD=root
#数据库
DATABASE=blog
#创建文件路径
#如果文件存在,则使用,否则就创建
[ ! -d "$PATH/$DATETIME" ] && mkdir -p "$PATH/$DATETIME"
#执行mysql的备份数据库的指令
mysqldump -u${USERNAME} -p${PASSWORD} --host=$HOST $DATABASE | gzip > $PATH/$DATETIME/$DATETIME.sql.gz
#打包备份文件
cd $PATH
tar -zcvf $DATETIME.tar.gz $DATETIME
#删除临时目录
rm -rf $PATH/$DATETIME

#删除7天前的备份文件
find $PATH -mtime +7 -name "*.tar.gz" -exec rm -rf {} \;

echo "备份成功"

---------------------------------------------------------------------
#开启定时任务
1)crontab -e
2)20 2 * * * /home/hsb/shell/database_backup.sh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值