【Linux命令-shell】案例练习:进度条、菜单选择、fork炸弹

目录

1、进度条

2、 菜单选择

3、fork炸弹


1、进度条

progress.sh文件内容如下:

#!/bin/bash
bar(){
while :
do
    echo -en "\033[42m \033[0m" #-en是不换行,42m是背景色
    sleep 0.5 #间隔0.5s
done
}
bar & #调用函数  &是将其放后台,不妨碍对其他文件的操作
cp -r $1 $2  #cp是拷贝  $1是原文件  $2是目标文件
kill $! #kill杀死进程  $!表是最后一个进程
echo #换行

2、 菜单选择

#!/bin/bash

#定义菜单功能,使用case语句判断用户选择的菜单项,实现对应的功能

clear

echo -e "\033[42m------------------------------\033[0m"

echo -e "#\e[32m 1、查看网卡信息 \e[0m           #"

echo -e "#\e[33m 2、查看内存信息 \e[0m           #"

echo -e "#\e[34m 3、查看磁盘信息 \e[0m           #"

echo -e "#\e[35m 4、查看CPU信息 \e[0m            #"

echo -e "#\e[36m 5、查看账户信息 \e[0m           #"

echo -e "\033[42m------------------------------\033[0m"

echo

read -p "请输入选项[1-5]:" key

case $key in
1)

       ifconfig |head -2;;
2)

        mem=$(free | grep Mem |tr -s " "|cut -d" " -f7)

        echo "本机内存剩余容量为:${mem}K.";;

3)

        root_free=$(df |grep /$ |tr -s " "|cut -d " " -f4)

        echo "本机根分区剩余容量为:${root_free}K.";;

4)

        cpu=$(uptime |tr -s " "|cut -d " " -f11)

        echo "本机CPU15分钟的平均负载为:$cpu.";;

5)

        login_number=$(who | wc -l)

        total_number=$(cat /etc/passwd | wc -l)

        echo "当前系统账户为$USER."

        echo "当前登录系统的账户数量为:$login_number."

        echo "当前系统中总用户数量为:$total_number.";;

*)

        echo "输入有误,超出1-5的范围.";;

esac

3、fork炸弹

无限循环自己,消耗系统资源

.(){.|. &};.     #仅需要13个字符

.(){   #定义函数 函数名为.

.|.  &  #在函数内调用自己

}

.  #执行函数

注意:该知识了解即可,不建议运行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值