#单分支
if 判断条件;then 条件为真的分支代码
fi
#双分支
if 判断条件; then 条件为真的分支代码
else
条件为假的分支代码
fi
#多分支
if 判断条件1; then 条件1为真的分支代码
elif 判断条件2; then 条件2为真的分支代码
elif 判断条件3; then 条件3为真的分支代码
...
else
以上条件都为假的分支代码
fi
条件判断case语句
case 变量引用 in PAT1)
分支1
;; PAT2)
分支2
;; ...
*)
;;
esac
例子:
case $INPUT in
[yY]|[Yy][Ee][Ss])
echo "Yes"
;;
[Nn]|[Nn][Oo])
echo "No"
;;
*)
;;
easc
#case多分支
case $option in
1)
select parameter in "a" "b";do
case $parameter in
a)
echo "aaaa"
break
;;
b)
echo "bbbb"
break
;;
easc
2)
...
easc
nmap扫描脚本
nmap 127.0.0.0.1
nmap -sV -Pn 127.0.0.1 -v -n
read -p "Input Target:" target
case options in
1)
nmap -sV -Pn $target -v -n
;;
2)
nmap -sV -Pn -p 1-1024,7000-9000 $target -v -n
;;
3)
nmap -sV -Pn -p1-65535 $target -v -n
;;
4)
nmap -O -Pn $target
;;
esac
循环
#方式1
for 变量名 in 列表;do
循环体
done
#方式2
for 变量名 in 列表
do
循环体
done
#批量创建用户并设置密码
for i in {1..10};do
useradd user$i
PASS=`cat /dev/urandom|tr -dc '[:alnum:]'|head -c12`
echo $PASS |passwd --stdin user$i &> /dev/null
echo user$i:$PASS >> /data/user.log
echo "user$i is created"
done
#扫描存活
#!/usr/bin/env bash
for ip in {1..254};do
ping 192.168.$ip.1 -c 1 |grep -q "ttl=" && echo "192.168.$ip.1 yes" >> /usr/tmp/.sys.log & >/dev/null 2>&1;
done
wait