基本操作
1、获取字符串长度
${#变量名}
2、字符串索引和切片
${string:index:number }
key="ABCDE"
${key:0:1} #A
${key:1:2} #BC 2表示取两个数字
for
#!/bin/bash
for i in {1..254}
do
#ping -c 2 192.168.28.$i &>/dev/null
ping 192.168.28.$i -c 2 &>/dev/null
if [ $? -eq 0 ];then
echo "192.168.1.$i 可用"
else
echo "192.168.1.$i 不可用"
fi
done
#/dev/null 不想要的输入放到里面
# $? 是返回上一条命令的执行状态
while
#!/bin/bash
n=0
while [ $n -lt 10 ]
do
echo $n
let n+=1
done
case1
#!/bin/bash
echo "==============="
echo "===输入q退出==="
echo "==============="
while :
do
read -p "请输入一个字符:" char
if [ ${#char} -ne 1 ];then
echo "$char不是一个字符"
continue
elif [ $char == "q" ];then
echo "手动退出"
exit
fi
case $char in
[a-z]|[A-Z]])
echo "字母"
;;
[0-9])
echo "数字"
;;
*)
echo "其它"
;;
esac
done
case2
#!/bin/bash
#chmod u+w /etc/sudoers
#newuser ALL=(ALL) NOPASSWD : ALL
read -p "请选择操作:satar|stop|restart:" operation
case $operation in
"start")
sudo /etc/init.d/nginx start
;;
"stop")
sudo /etc/init.d/nginx stop
;;
"restart")
sudo /etc/init.d/nginx restart
;;
*)
echo "Usage:nginx {start|stop|restart}"
;;
esac
eg:mysql
#!/bin/bash
user="root"
passwd="123456"
while :; do
count=$(mysqladmin -u$user -p$passwd status | awk '{print $4}')
echo "$(date +%H:%M:%S) 并发连接数为:$count"
sleep 2
done
md5
#!/bin/bash
for file in $(ls /etc/*.conf); do
# echo $file
md5sum $file >>$(date +%Y-%m-%d:%H-%M-%S).txt
done
#查看不同的地方
#diff r1.txt r2.txt
生成8位随机密码
#!/bin/bash
key="01234567890zbcdefg"
length=${#key}
for i in {1..8}:; do
index=$((RANDOM % $length))
pass=$pass${key:index:1}
done
echo $pass
#PYTHON版本
import random
import string
_list = string.ascii_letters + string.digits + "_"
pwd = ""
for i in range(8):
a = random.choice(_list)
pwd += a
print(pwd)
函数调用
#!/bin/bash
sumn() {
echo $[n1+n2]
}
subn() {
echo $[n1-n2]
}
read -p "请输入第一个数字:" n1
read -p "请输入第二个数字:" n2
read -p "选择操作(+或-)" op
case $op in
"+")
sumn
;;
"-")
subn
;;
*)
echo "输出错误"
;;
esac