SHELL脚本案例

SHELL脚本案例:

1.判断两次输入的密码是否一致,一致则输出“OK”,不一致则输出“Error”

#!/bin/bash
read -p "请输入密码:" pass1
read -p "请再次输入密码:" pass2
if [ $pass1 == $pass2 ]; then
        echo "OK"
else
        echo "Error"
fi

2.输入圆半径后计算圆面积

#!/bin/bash
read -p "请输入半径:" r
echo "圆面积为:"
`echo "3.14*$r*$r" | bc`

3.自动生成20以内的随机数,用户可进行循化猜数,直至猜中为止,自动退出

#!/bin/bash
x=$[RANDOM%20]
i=0
while :
do
        read -p "请猜随机数:" num
        let i++
        `if [ $num -eq $x ]; then`
                echo "猜对了"
                echo "你猜了$i次"
                exit
        elif [ $num -gt $x ]; then
                echo "猜大了"
        else
                echo "猜小了"
        fi
done

4.生成不同颜色的字

#!/bin/bash
echo -e "\033[32mtest\033[0m"
echo -e "\033[33mtest\033[0m"
echo -e "\033[34mtest\033[0m"
echo -e "\033[35mtest\033[0m"
echo -e "\033[36mtest\033[0m"
echo -e "\033[37mtest\033[0m"

5.打印阵列,输入阵列大小,打印出n*n的阵列

#!/bin/bash
read -p "请输入打印个数:" p
for i in seq $p
do
        for o in seq $p
        do
                [ $o -eq 1 ] && continue
                echo -n "* "
        done
        echo "* "
done

6.创建账户后为用户自动生成随机密码并通过邮件发送给root用户

#!/bin/bash
#自动安装软件包vsftpd
yum -y install vsftpd

#自动创建一个系统账户tomcat
useradd tomcat

#在tomcat家目录下创建一个测试文件/home/tomcat/test.txt(内容为hello)
echo "hello"> /home/tomcat/test.txt

#生成1个8位随机密码,将tomcat账户的密码修改为该随机密码
key="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
for i in seq 8
do
`num=$[RANDOM%62]`
`tmp=${key:num:1}`
`pass=$pass$tmp`
done
echo $pass | passwd --stdin tomcat


#将该随机密码通过邮件的形式通知root(给root发邮件,内容是随机密码)
echo $pass | mail -s password root

#脚本自动启动vsftpd,设置开机自启
systemctl restart vsftpd
systemctl enable vsftpd

7.循环生成 20 个 4 位随机字符串,以这 20 个随机字符串为文件名,创建 20 个文件,扩展名为 jpg

#!/bin/bash
key="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
for i in seq 20
do
        create(){
        for j in seq 4
        do    
        `num=$[RANDOM%62]`
        `tmp=${key:num:1}`
        `pass=$pass$tmp`
        done
        echo $pass
        }
        touch /root/create.jpg
done

8.修改前面创建的 20 个随机文件名的文件,新的文件名为 1.jpg,2.jpg,3.jpg 以此类推(修改文件名)

#!/bin/bash
j=0
for i in ls /root/*.jpg
do
        let j++
        `mv $i /root/$j.${i##*.}`
done

9.编写函数,函数的功能是给网卡配置 IP
检测某个网卡是否有 IP(通过 read 读取网卡名称,如果用户未输入则默认为 eth0)
如果网卡没有 IP,调用前面的函数给网卡配置 IP
如果网卡已经有 IP,则提示该网卡已经有 IP 地址

#!/bin/bash
ipcf(){
        nmcli connection modify $1 ipv4.method manual ipv4.addresses $2/24 connection.autoconnect yes
        nmcli connection up $1
}

read -p "请输入要配置的网卡名称:" ethernet
ethernet=${ethernet:-eth0}
ifconfig $ethernet | grep inet &> /dev/null
if [ $? -eq 0 ]; then
        echo "网卡$ethernet已经有IP地址"
else
        read -p "请输入IP地址:" address
        ipcf $ethernet $address
fi

10.提取当前计算机中用户的密码

#!/bin/bash
user=$(awk -F: '/bash$/{print $1}' /etc/passwd)

for NAME in $user
do
        grep "^$NAME" /etc/shadow | awk -F: '{print $1 "-->" $2}'
done

11.循环刷新显示当前计算机的信息

#!/bin/bash
while :
do
clear
cpu=`uptime | awk '{print $NF}'`
echo "本机CPU最近15分钟的负载是:"$CPU
ip=`ifconfig eth | awk '/inet/{print $2}'`
echo "本机IP地址为:"$ip
net_in=`ifconfig eth0 | awk '/RX p/{print $5}'`
echo "入站网卡流量为:"$net_in
net_out=`ifconfig eth0 | awk '/TX p/{print $5}'`
echo "出站网卡流量为:"$net_out
mem=`free | awk '/Men:/{print $4}'`
echo "内存剩余容量为:"$mem
disk=`df -h| awk '#\/$#{print $4}'`
echo "根分区剩余容量为:"$disk
user=`cat /etc/passwd | wc -l`
echo "计算机账户数量为:"$user
login=`who | wc -l`
echo "登陆账户数量为:"$login
soft=`rpm -qa | wc -l`
echo "已安装软件包数量为:"$soft
process=`ps aux | wc -l`
echo "当前计算机启动的进程数量为:"$process

sleep 1
done
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值