1.运算符号
+ ##加法
- ##减法
*##乘法
/ ##除法
% ##除法后的余数
** ##乘方
++ ##自加一
– ##自减一
< ##小于
<= ##小于等与
"> 大于
.>= 大于等与
= ##等于
j+=i ##j=j+i
= ##j=ji
/= ##j=j/i
%= ##j=j%i
2.运算指令
(())
let
expr
bc
bc << EOF
1+2
EOF
eg:
echo $[1+2]
脚本实验
#10s倒计时脚本:
#!/bin/bash
for ((j=10;j>0;j--))
do
echo -n "after ${j}s is end "
echo -ne "\r"
sleep 1
done
#1分10秒倒计时
#!/bin/bash
for ((j=70;j>0;j--))
do
min=$[$j/60]
sec=$[$j%60]
echo -n "after "$min:$sec"s is end "
echo -ne "\r"
sleep 1
done
#创建用户 和 密码
if [ "$#" -ne "2" ]
then echo "Error:plz input 2 files"
exit
elif [ ! -e "$1" ]
then echo "Error:$1 does not exist"
exit
elif [ ! -e "$2" ]
then echo "Error:$2 does not exist"
exit
elif
LINE1=`sed -n '$=' $1`
LINE2=`sed -n '$=' $2`
[ "$LINE1" -ne "$LINE2" ]
then echo "Error:plz match the same lines between the two files"
exit
fi
for Line in `seq 1 $LINE1`
do
USERNAME=`sed -n ${Line}p $1`
PASSWORD=`sed -n ${Line}p $2`
useradd $USERNAME &> /dev/null && {
echo $PASSWORD | passwd --stdin $USERNAME &> /dev/null
echo $USERNAME is created
}||{
echo $USERNAME exists
}
done
####系统性能检测脚本
#!/bin/bash
echo mem:`ps ax -o %mem | awk 'BEGIN{N=0}!/%MEM|0.0/{N+=$1}END{print N}'`%
echo cpu:`ps ax -o %cpu | awk 'BEGIN{N=0}!/%CPU|0.0/{N+=$1}END{print N}'`%
###数据库备份
[ -z "$1" ] && {
echo "plz input password"
exit
}
rpm -q mariadb-server &> /dev/null
[ "$?" != "0" ] && {
echo "not installed"
exit
}
[ ! -e "/var/lib/mysql/mysql.sock" ] &&{
echo "not running"
exit
}
DATABASE=`mysql -uroot -p$1 -e "SHOW DATABASES;" | grep -E "base$|schema$" -v`
if [ "$?" != "0" ]
then
echo "wrong passwd"
else
mkdir -p /mnt/mysqldump
for DATABASENAME in $DATABASE
do
[ ! -e "/mnt/mysqldump/${DATABASENAME}.sql" ] &&{
mysqldump -uroot -p$1 $DATABASENAME > /mnt/mysqldump/${DATABASENAME}.sql
echo "${DATABASENAME}.sql is been back up"
}||{
echo -e "/mnt/mysqldump/${DATABASENAME}.sql exists"
while true
do
read -p "PLZ INPUT S[KIP] B[ACK UP] O[VERWRITE]:" ACTION
case $ACTION in
S)
break;;
B)
mysqldump -uroot -p$1 $DATABASENAME > /mnt/mysqldump/${DATABASENAME}_backup.sql
echo "${DATABASENAME}_backup.sql is been back up"
break
;;
O)
mysqldump -uroot -p$1 $DATABASENAME > /mnt/mysqldump/${DATABASENAME}.sql
echo "${DATABASENAME}.sql is overwrited."
break
;;
E)
break
;;
*)
echo UNKNOWN WORD
;;
esac
done
}
done
fi
#swap
#!/bin/bash
/usr/vin/expect <<EOF
spawn fdisk /dev/vdb
expect {
"Command" { send "n\r";exp_continue }
"default p" { send "\r";exp_continue }
"Partition number" { send "\r";exp_continue }
"First sector" { send "\r";exp_continue }
"Last sector" { send "\r";exp_continue }
}
expect {
"Do you want to remove signature" { send "yes\r";exp_continue }
"help" { send "wq\r"}
}
expect eof
EOF
PNUM=`grep vdb /proc/partitions | awk -F "vdb" 'END{print $2}'`
/usr/bin/expect <<EOF
spawn fdisk /dev/vdb
expect {
"Command" { send "n\r";exp_continue }
"Partition number" { send "$PNUM\r";exp_continue }
"Hex code" { send "82\r" }
}
expect "Command"
send "wq\r"
expect eof
EOF
mkswap /dev/vdb${PNUM}
echo /dev/vdb${PNUM} swap swap defaults 0 0 >> /etc/fstab