admin管理员组

文章数量:1794759

Shell脚本不会写?100个经典脚本范例,拿走即用真的太绝了

Shell脚本不会写?100个经典脚本范例,拿走即用真的太绝了

如果将运维比作手链,将珍珠比作服务,那么将珍珠串起来的线就是Shell,作为实现Linux系统自动管理以及自动化运维所必备的Shell脚本,其重要性便不言而喻。

每一位合格的Linux系统管理员或运维工程师,都应该将熟练编写Shell脚本视为基本技能之一,只有这样才能减少不必要的劳动。但是新人在编写脚本时却只会:#!/bin/bash,所以今天就给大家分享100个经典实用的脚本范例,手把手教你写Shell脚本。

这100个脚本范例从基础到进阶均涵盖,有侧重地提高编写能力,结构清晰准确,PDF格式,可自由复制,对照练习,很适合不会写Shell脚本的朋友提升实际编写能力,强烈建议收藏学习。

试试戳戳这里

通过位置变量创建 Linux 系统账户及密码 #!/bin/bash #$1 是执行脚本的第一个参数,$2 是执行脚本的第二个参数 useradd "$1" echo "$2" | passwd ‐‐stdin "$2"

依次提示用户输入 3 个整数,脚本根据数字大小依次排序输出 3 个数字 #!/bin/bash read ‐p "请输入一个整数:" num1 read ‐p "请输入一个整数:" num2 read ‐p "请输入一个整数:" num3 #不管谁大谁小,最后都打印 echo "$num1,$num2,$num3" #num1 中永远存最小的值,num2 中永远存中间值,num3 永远存最大值 #如果输入的不是这样的顺序,则改变数的存储顺序,如:可以将 num1 和 num2 的值对调 tmp=0 #如果 num1 大于 num2,就把 num1 和和 num2 的值对调,确保 num1 变量中存的是最小值 if [ $num1 ‐gt $num2 ];then tmp=$num1 num1=$num2 num2=$tmp fi #如果 num1 大于 num3,就把 num1 和 num3 对调,确保 num1 变量中存的是最小值 if [ $num1 ‐gt $num3 ];then tmp=$num1 num1=$num3 num3=$tmp fi #如果 num2 大于 num3,就把 num2 和 num3 对标,确保 num2 变量中存的是小一点的值 if [ $num2 ‐gt $num3 ];then tmp=$num2 num2=$num3 num3=$tmp fi echo "排序后数据为:$num1,$num2,$num3"

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

编写批量修改扩展名脚本,如批量将 txt 文件修改为 doc 文件 #!/bin/bash #执行脚本时,需要给脚本添加位置参数 #脚本名 txt doc(可以将 txt 的扩展名修改为 doc) #脚本名 doc jpg(可以将 doc 的扩展名修改为 jpg) for i in "ls *.$1" do mv $i ${i%.*}.$2 done

编写一个点名器脚本 #!/bin/bash #该脚本,需要提前准备一个 user.txt 文件 #该文件中需要包含所有姓名的信,一行一个姓名,脚本每次随机显示一个姓名 while : do #统计 user 文件中有多少用户 line=`cat user.txt |wc ‐l` num=$[RANDOM%line+1] sed ‐n "${num}p" user.txt sleep 0.2 clear done

统计/var/log 有多少个文件,并显示这些文件名 #!/bin/bash #使用 ls 递归显示所有,再判断是否为文件,如果是文件则计数器加 1 cd /var/log sum=0 for i in `ls ‐r *` do if [ ‐f $i ];then let sum++ echo "文件名:$i" fi done echo "总文件数量为:$sum"

检查特定的软件包是否已经安装 #!/bin/bash if [ $# ‐eq 0 ];then echo "你需要制定一个软件包名称作为脚本参数" echo "用法:$0 软件包名称 ..." fi #$@提取所有的位置变量的值,相当于$* for package in "$@" do if rpm ‐q ${package} &>/dev/null ;then echo ‐e "${package}\\033[32m 已经安装\\033[0m" else echo ‐e "${package}\\033[34;1m 未安装\\033[0m" fi done

测试用户名与密码是否正确 #!/bin/bash #用户名为 tom 并且密码为 123456,则提示登录成功,否则提示登录失败 read ‐p "请输入用户名:" user read ‐p "请输入密码:" pass if [ "$user" == 'tom' ‐a "$pass" == '123456' ];then echo "Login successful" else echo "Login Failed" fi

熟练地编写Shell脚本是运维人员的基本功,切不可敷衍了事,这100个经典有趣的Shell脚本范例,赶快mark起来!

试试戳戳这里

本文标签: 脚本范例即用经典shell