rm -rf backup-time.txt
fi
例:判断apache是否启动
#!/bin/bash
port=$(nmap -sT 192.168.200.254 | grep tcp | grep http | awk ‘{print $2}‘)
#使用nmap扫描服务器端口,并截取apache服务的状态,赋予变量port
if [ "$port" == "open" ]
then
echo "$(date) running " >> /tmp/apache.log
else
systemctl start httpd.service
echo "$(date) restart " >> /tmp/apache.log
fi
if [ 条件判断式1 ]
then
当条件判断式1成立,执行程序1
elif [ 条件判断式2 ]
then
当条件判断式2成立,执行程序2
.........................
else
当所有条件不成立,执行此程序
fi
判断用户输入文件类型
#!/bin/bash
#判断用户输入的文件类型
read -p "file name ?" file
#接受输入,并赋予变量file
if [ -z "$file" ]
#判断变量file是否为空
then
echo "ERROR 请输入文件名"
exit 1
elif [ ! -e "$file" ]
#判断file的值是否存在
then
echo "ERROR 请输入正确的文件名"
exit 2
elif [ -f "$file" ]
#判断file值是否为普通文件
then
echo "$file is ordinary file"

elif [ -d "file" ]
#判断file是否为目录文件
then
echo "$file is directory file"
else
echo "$file is other file"
fi
case语句
case $变量名 in
“值1”)
如果变量的值等于值1,则执行程序1
;;
“值2”)
如果变量的值等于值2,则执行程序2
;;
....................................
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
例:判断用户输入
#!/bin/bash
#判断用户输入
read -p "please choose yes/no:" -t 30 import
#如果30s未输入,则执行最后的 *)
case $import in
"yes")
echo "yes"
;;
"no")
echo "no"
;;
*)
echo "ERROR"
;;
esac
语法一
for 变量 in 值1 值2 值3...........
do
程序
done
例:
#!/bin/bash
for number in 1 2 3 4 5
do
echo "number is $number"
done
例2:
#!/bin/bash
#批量备份脚本
cd /tar
ls *.tar.gz>tar.log
for t in $(cat tar.log)
do
tar xzvf $t &>/dev/null
done
rm -rf /tar/tar.log
for ((初始值;循环控制条件;变量变化))
do
程序
done
例:
#!/bin/bash
#从1加到100
s=0
for ((i=1; i<=100;i=i+1))
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-86197-4.html
利息也买不到一斤肉了
许多男人一生娶过多个女人