shell脚本示例
文章目录
使用for循环在/wenhs目录下通过随机10个字符加固定字符串wenhs批量创建10个html文件,结果类似qnvuxvicni_wenhs.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#!/bin/bash dir=/wenhs/ for ((i=1;i<=10;i++));do filename=$(tr -dc A-Za-z0-9_ < /dev/urandom | head -c 10 |xargs)_wenhs.html if [ -d $dir ];then cd $dir && touch $filename else mkdir $dir && cd $dir && touch $filename fi done 效果: [root@wenhs5479 ~]# ls /wenhs/ 7Ocr2n4FNh_wenhs.html eWOxCCySgE_wenhs.html wzmqqJ8vS8_wenhs.html BFRXrBMn6N_wenhs.html NEAof8Y8dN_wenhs.html xLEbyL6ZDs_wenhs.html E2VgHE1rwc_wenhs.html Ulq9EZSxLX_wenhs.html EcFzJip34y_wenhs.html UMbdC4pusC_wenhs.html |
将以上文件名中的wenhs全部改成weixinghao(用for循环实现),并且html改成大写
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#!/bin/bash dir=/wenhs file=$(ls $dir) for i in $file;do j=$(echo $i|cut -c 1-10) mv $dir/$j* $dir/${j}_weixinghao.HTML done 效果: [root@wenhs5479 ~]# ls /wenhs/ 7Ocr2n4FNh_weixinghao.HTML eWOxCCySgE_weixinghao.HTML wzmqqJ8vS8_weixinghao.HTML BFRXrBMn6N_weixinghao.HTML NEAof8Y8dN_weixinghao.HTML xLEbyL6ZDs_weixinghao.HTML E2VgHE1rwc_weixinghao.HTML Ulq9EZSxLX_weixinghao.HTML EcFzJip34y_weixinghao.HTML UMbdC4pusC_weixinghao.HTML |
批量创建10个系统帐号wenhs01-wenhs10并设置密码(密码为随机8位字符串)
1 2 3 4 5 |
#!/bin/bash for i in $(seq -w 10);do useradd -r wenhs$i echo "password$i" | md5sum |cut -c-8 | tee -a passwd.txt | passwd --stdin wenhs$i &>/dev/null done |
写一个脚本,实现判断实验主机当前网段中当前在线的IP有哪些
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#!/bin/bash subnet=192.168.42.0/24 netaddr=`echo $subnet|cut -d. -f1-3` for i in {1..254};do { ping -c 1 -t 1 $netaddr.$i > /dev/null if [ $? == 0 ];then echo $netaddr.$i fi } & done wait 效果: [root@wenhs5479 ~]# bash nmap 192.168.42.129 192.168.42.87 192.168.42.81 |
打印My WeChat is wenhs5479, welcome to discuss together.中字母长度不大于6的单词
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#!/bin/bash len=6 words='My WeChat is wenhs5479, welcome to discuss together.' for word in ${words[@]};do l=$(echo $word|wc -c) if [ $l -gt $len ];then echo $word;fi done 效果: [root@wenhs5479 ~]# bash print.sh WeChat wenhs5479, welcome discuss together. |
实现以脚本传参的方式比较2个整数大小,以屏幕输出的方式提醒用户比较结果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#!/bin/bash max=$1 min=$2 [ $# -lt 2 ] && echo "请至少输入2个数字: " && exit for i in $*;do echo "$i" |egrep '^[0-9]+$' &> /dev/null [ $? -ne 0 ] && echo "请输入2个整数,不是字母或特殊字符" && exit [ $max -le $i ] && max=$i [ $min -ge $i ] && min=$i done echo "$max > $min" 效果: [root@wenhs5479 ~]# bash wenhs.sh 13123 53453 53453 > 13123 |
实现以read读入的方式比较2个整数大小,以屏幕输出的方式提醒用户比较结果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
#!/bin/bash flag=true while $flag;do read -p "请输入一个数字:" A echo $A |egrep '^[0-9]+$' &>/dev/null if [ $? -ne 0 ];then echo "请输入一个整数" continue else while $flag;do read -p "请输入一个数字:" B echo $B |egrep '^[0-9]+$' &>/dev/null if [ $? -ne 0 ];then echo "请输入一个整数" continue else flag=false fi done fi done if [ $A -gt $B ];then echo "$A > $B" elif [ $A -eq $B ];then echo "$A = $B" else echo "$A < $B" fi 效果: [root@wenhs5479 ~]# bash wenhs.sh 请输入一个数字:a 请输入一个整数 请输入一个数字:b 请输入一个整数 请输入一个数字:123 请输入一个数字:321 123 < 321 [root@wenhs5479 ~]# bash wenhs.sh 请输入一个数字:123 请输入一个数字:123 123 = 123 [root@wenhs5479 ~]# bash wenhs.sh 请输入一个数字:321 请输入一个数字:123 321 > 123 [root@wenhs5479 ~]# |