shell脚本小示例
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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | 求1-100自然数的和: 法一: for 循环 #!/bin/bash # declare -i sum =0 for ((i=0;i<=100;i++)); do let sum +=$i done echo "Sum:$sum" 法二: while 循环 #!/bin/bash # declare -i sum =0 declare -i i=0 while [ $i - le 100 ]; do let sum +=$i let i++ done echo $i echo "Summary:$sum." 统计tcp连接状态的脚本: #!/bin/bash # This script is count tcp status declare -i estab=0 declare -i listen=0 declare -i other=0 for state in $( netstat -tan | grep "^tcp\>" | awk "{print $NF}" ); do if [ "$state" == 'ESTABLISHED' ]; then let estab++ elif [ "$state" == 'LISTEN' ]; then let listen++ else let other++ fi done echo "ESTABLISHED:$estab" echo "LISTEN:$listen" echo "Unknow:$other" 批量添加10个用户: #!/bin/bash if [ ! $UID - eq 0 ]; then echo "Only root can use this script." exit 1 fi for i in {1..10}; do if id user$i &> /dev/null ; then echo "user$i exist" else useradd user$i if [ $? - eq 0 ]; then echo "user$i" | passwd --stdin user$i &> /dev/null fi fi done 测试一个网段内主机的连通脚本: #!/bin/bash #ping net= '172.16.1' uphosts=0 downhosts=0 for i in {1..254}; do ping -c 1 -w 1 ${net}.${i} &> /dev/null if [ $? - eq 0 ]; then echo "${net}.${i} is up." let uphosts++ else echo "${net}.${i} is down." let downhosts++ fi done echo "Up hosts:$uphosts" echo "Down hosts:$downhosts" 求数的阶乘: #!/bin/bash # fact() { if [ $1 - eq 0 -o $1 - eq 1 ]; then echo 1 else echo $[$1*$(fact $[$1-1])] fi } fact 5 |
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步