shell 显示系统信息菜单

1. 一次交互

  • Read-Menu.sh
#!/usr/bin/env bash
# read-menu: a menu driven system information program
clear
cat << EOF
Please Select:
    1. Display System Information
    2. Display Disk Space
    3. Display Home Space Utilization
    0. Quit
EOF
echo -n 'Enter selection [0-3]: '
read -r sel

case $sel in
    0) echo "Program terminated.";;
    1) echo "Hostname: $HOSTNAME"; uptime;;
    2) df -h;;
    3)
        if [ "$UID" = 0 ]; then
            echo "Home Space Utilization (All Users)"
            du -sh /home/*
        else
            echo "Home Space Utilization ($USER)"
            du -sh "$HOME"
        fi
    ;;
    *)
        echo "Invalid entry." >&2
        exit 1
esac

执行:

$ bash read-menu.sh
Please Select:
    1. Display System Information
    2. Display Disk Space
    3. Display Home Space Utilization
    0. Quit
Enter selection [0-3]: 0
Program terminated.

$ bash read-menu.sh
Please Select:
    1. Display System Information
    2. Display Disk Space
    3. Display Home Space Utilization
    0. Quit
Enter selection [0-3]: 1
Hostname: yourdomain.com
 04:27:46 up 1 day,  8:40,  2 users,  load average: 1.74, 1.66, 1.64

$ bash read-menu.sh
Please Select:
    1. Display System Information
    2. Display Disk Space
    3. Display Home Space Utilization
    0. Quit
Enter selection [0-3]: 2
Filesystem                         Size  Used Avail Use% Mounted on
udev                               3.6G     0  3.6G   0% /dev
tmpfs                              742M   75M  667M  11% /run
/dev/mapper/ubuntu--vg-ubuntu--lv   19G   19G     0 100% /
tmpfs                              3.7G     0  3.7G   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
tmpfs                              3.7G     0  3.7G   0% /sys/fs/cgroup
/dev/mapper/data-lvdata             40G   15G   26G  37% /data
/dev/sda2                          976M  220M  690M  25% /boot
overlay                             40G   15G   26G  37% /data/docker/overlay2/e0be8abd3b18e4c43604eb7a21bc4a6cd40d26290dcaf126a7ecc4ce4463803f/merged
overlay                             40G   15G   26G  37% /data/docker/overlay2/263af3bac5540d800f30cb0302129810f7a12b9c0aa075c5bb5ef9c3e404e694/merged
overlay                             40G   15G   26G  37% /data/docker/overlay2/c8c0ac7f5b991aa62b7786dc0adacf00685d03c42556080572936da9053eb89a/merged
tmpfs                              742M     0  742M   0% /run/user/0

$ bash read-menu.sh
Please Select:
    1. Display System Information
    2. Display Disk Space
    3. Display Home Space Utilization
    0. Quit
Enter selection [0-3]: 3
Home Space Utilization (All Users)
32K     /home/ghostwritten

2. 循环交互

  • while-menu.sh
#!/bin/bash
# while-menu: a menu driven system information program
DELAY=1 # Number of seconds to display results
while true; do
    clear
        cat << EOF
        Please Select:
        1. Display System Information
        2. Display Disk Space
        3. Display Home Space Utilization
        0. Quit
EOF
    read -p "Enter selection [0-3] > "
    case "$REPLY" in
        0)
            break
            ;;
        1)
            echo "Hostname: $HOSTNAME"
            uptime
            ;;
        2)
            df -h
            ;;
        3)
            if [[ $(id -u) -eq 0 ]]; then
                echo "Home Space Utilization (All Users)"
                du -sh /home/*
            else
                echo "Home Space Utilization ($USER)"
                du -sh $HOME
            fi
            ;;
        *)
            echo "Invalid entry."
            ;;
    esac
    sleep "$DELAY"
done
echo "Program terminated."

执行:

$ bash read-menu.sh
Please Select:
    1. Display System Information
    2. Display Disk Space
    3. Display Home Space Utilization
    0. Quit
Enter selection [0-3]: 0
Program terminated.

Please Select:
    1. Display System Information
    2. Display Disk Space
    3. Display Home Space Utilization
    0. Quit
Enter selection [0-3]: 1
Hostname: yourdomain.com
 04:27:46 up 1 day,  8:40,  2 users,  load average: 1.74, 1.66, 1.64

Please Select:
    1. Display System Information
    2. Display Disk Space
    3. Display Home Space Utilization
    0. Quit
Enter selection [0-3]: 2
Filesystem                         Size  Used Avail Use% Mounted on
udev                               3.6G     0  3.6G   0% /dev
tmpfs                              742M   75M  667M  11% /run
/dev/mapper/ubuntu--vg-ubuntu--lv   19G   19G     0 100% /
tmpfs                              3.7G     0  3.7G   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
tmpfs                              3.7G     0  3.7G   0% /sys/fs/cgroup
/dev/mapper/data-lvdata             40G   15G   26G  37% /data
/dev/sda2                          976M  220M  690M  25% /boot
overlay                             40G   15G   26G  37% /data/docker/overlay2/e0be8abd3b18e4c43604eb7a21bc4a6cd40d26290dcaf126a7ecc4ce4463803f/merged
overlay                             40G   15G   26G  37% /data/docker/overlay2/263af3bac5540d800f30cb0302129810f7a12b9c0aa075c5bb5ef9c3e404e694/merged
overlay                             40G   15G   26G  37% /data/docker/overlay2/c8c0ac7f5b991aa62b7786dc0adacf00685d03c42556080572936da9053eb89a/merged
tmpfs                              742M     0  742M   0% /run/user/0

Please Select:
    1. Display System Information
    2. Display Disk Space
    3. Display Home Space Utilization
    0. Quit
Enter selection [0-3]: 3
Home Space Utilization (All Users)
32K     /home/ghostwritten
Copyright © ghostwritten 浙ICP备2020032454号 2022 all right reserved,powered by Gitbook该文件修订时间: 2022-06-22 16:34:16

results matching ""

    No results matching ""