开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第13天,点击查看活动详情 介绍 select函数是IO多路复用的函数,它主要的功能是用来等文件描述符中的事件是否就绪,select可以使我们在同时等待多个文件缓冲区 ,减少IO等待的时间,能够提高进程的IO效率。 select()函数允许程序监视多个文件描述符,等待所监视的一个或者多个文件描述符变为“准备好”的状态。所谓的”准备好“状态是指:文件描述符不再是阻塞状态,可以用于某类IO操作了,包括可读,可写,发生异常三种
实战
#!/bin/bash
select similar in disk_user free_user process quit
do
case "$similar" in
disk_user)
df -h
;;
free_user)
free -m
;;
process)
ps -ef
;;
quit)
break
;;
*)
echo "error"
esac
done
[root@192.168.146.101~]# sh similar-menu.sh
1) disk_user
2) free_user
3) process
4) quit
#? 2
total used free shared buff/cache available
Mem: 972 666 80 19 225 146
Swap: 2047 242 1805
#? 1
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 470M 0 470M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 8.7M 478M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 7.2G 9.9G 42% /
/dev/sda1 1014M 171M 844M 17% /boot
tmpfs 98M 4.0K 98M 1% /run/user/42
tmpfs 98M 28K 98M 1% /run/user/0
/dev/sr0 4.4G 4.4G 0 100% /run/media/root/CentOS 7 x86_64
#? 5
error
#? 4
修改前面的提示
添加这一行PS3="Welcome to my world:"
[root@192.168.146.101~]# sh similar-menu.sh
1) disk_user
2) free_user
3) process
4) quit
Welcome to my world:1
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 470M 0 470M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 8.7M 478M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 7.2G 9.9G 42% /
/dev/sda1 1014M 171M 844M 17% /boot
tmpfs 98M 4.0K 98M 1% /run/user/42
tmpfs 98M 28K 98M 1% /run/user/0
/dev/sr0 4.4G 4.4G 0 100% /run/media/root/CentOS 7 x86_64
Welcome to my world:2
total used free shared buff/cache available
Mem: 972 668 76 19 227 144
Swap: 2047 242 1805
Welcome to my world:4