c语言sscanf函数的用法是什么
260
2022-11-13
Shell 脚本 100 例《二》
11. 编写脚本,实现人机<石头,剪刀,布>游戏 #!/bin/bash #Author:丁丁历险(Jacob) game=(石头 剪刀 布) num=$[RANDOM%3] computer=${game[$num]} #通过随机数获取计算机的出拳 #出拳的可能性保存在一个数组中,game[0],game[1],game[2]分别是 3 中不同的可能 echo "请根据下列提示选择您的出拳手势" echo "1.石头" echo "2.剪刀" echo "3.布" read ‐p "请选择 1‐3:" person case $person in 1) if [ $num ‐eq 0 ];then echo "平局" elif [ $num ‐eq 1 ];then echo "你赢" else echo "计算机赢" fi;; 2) if [ $num ‐eq 0 ];then echo "计算机赢" elif [ $num ‐eq 1 ];then echo "平局" else echo "你赢" fi;; 3) if [ $num ‐eq 0 ];then echo "你赢" elif [ $num ‐eq 1 ];then echo "计算机赢" else echo "平局" fi;; *) echo "必须输入 1‐3 的数字" esac
12. 编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机 状态(for 版本) #!/bin/bash for i in {1..254} do ping ‐c2 ‐i0.3 ‐W1 192.168.4.$i &>/dev/null if [ $? –eq 0 ];then echo "192.168.4.$i is up" else echo "192.168.4.$i is down" fi done 13. 编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机 状态(while 版本) #!/bin/bash i=1 while [ $i ‐le 254 ] do ping ‐c2 ‐i0.3 ‐W1 192.168.4.$i &>/dev/null if [ $? –eq 0 ];then echo "192.168.4.$i is up" else echo "192.168.4.$i is down" fi let i++ done 14. 编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机 状态(多进程版) #!/bin/bash #Author:丁丁历险(Jacob) #定义一个函数,ping 某一台主机,并检测主机的存活状态 myping(){ ping ‐c2 ‐i0.3 ‐W1 $1 &>/dev/null if [ $? ‐eq 0 ];then echo "$1 is up" else echo "$1 is down" fi } for i in {1..254} do myping 192.168.4.$i & done #使用&符号,将执行的函数放入后台执行 #这样做的好处是不需要等待 ping 第一台主机的回应,就可以继续并发 ping 第二台主机,依次类推。
15. 编写脚本,显示进度条 #!/bin/bash jindu(){ while : do echo ‐n '#' sleep 0.2 done } jindu & cp ‐a $1 $2 killall $! echo "拷贝完成'' 16. 进度条,动态时针版本 #!/bin/bash #定义一个显示进度的函数,屏幕快速显示| / ‐ \ rotate_line(){ INTERVAL=0.1 #设置间隔时间 COUNT="0" #设置 4 个形状的编号,默认编号为 0(不代表任何图像) while : do COUNT=`expr $COUNT + 1` #执行循环,COUNT 每次循环加 1,(分别代表 4 中不同的形状) case $COUNT in #判断 COUNT 的值,值不一样显示的形状就不一样 "1") #值为 1 显示‐ echo ‐e '‐'"\b\c" sleep $INTERVAL ;; "2") #值为 2 显示\\,第一个\是转义 echo ‐e '\\'"\b\c" sleep $INTERVAL ;; "3") #值为 3 显示| echo ‐e "|\b\c" sleep $INTERVAL ;; "4") #值为 4 显示/ echo ‐e "/\b\c" sleep $INTERVAL ;; *) #值为其他时,将 COUNT 重置为 0 COUNT="0";; esac done } rotate_line 17. 9*9 乘法表(编写 shell 脚本,打印 9*9 乘法表) #!/bin/bash
for i in `seq 9` do for j in `seq $i` do echo ‐n "$i*$j=$[i*j] " done echo done 18. 使用死循环实时显示 eth0 网卡发送的数据包流量 #!/bin/bash #Author:丁丁历险(Jacob) while : do echo '本地网卡 eth0 流量信息如下: ' ifconfig eth0 | grep "RX pack" | awk '{print $5}' ifconfig eth0 | grep "TX pack" | awk '{print $5}' sleep 1 done 19. 使用 user.txt 文件中的人员名单,在计算机中自动创建对应的账户并配置初始密码 #!/bin/bash #本脚本执行,需要提前准备一个 user.txt 文件,该文件中包含有若干用户名信息 for i in `cat user.txt` do useradd $i echo "123456" | passwd ‐‐stdin $i done 20. 编写批量修改扩展名脚本,如批量将 txt 文件修改为 doc 文件 #!/bin/bash #执行脚本时,需要给脚本添加位置参数 #脚本名 txt doc(可以将 txt 的扩展名修改为 doc) #脚本名 doc jpg(可以将 doc 的扩展名修改为 jpg) for i in "ls *.$1" do mv $i ${i%.*}.$2 done
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~