사용자가 사용자 정의 명령을 입력할 수 있도록 bash 메뉴에서 옵션을 선택하시겠습니까?

사용자가 사용자 정의 명령을 입력할 수 있도록 bash 메뉴에서 옵션을 선택하시겠습니까?

그래서 명령을 반복해서 입력하지 않고도 VPN 앱을 제어할 수 있도록 메뉴를 만들었습니다.

하지만 숫자 7을 선택하고 Enter 키를 누른 다음 메뉴에서 명령을 수동으로 입력할 수 있었으면 좋겠습니다. 명령이 실행되면 메뉴로 돌아가고 싶습니다.

읽기 명령을 시도했지만 지금까지 운이 없습니다.

감사해요,

편집 - DevDojo에서 얻은 코드를 재사용합니다. 요청 시:

#!/bin/bash

##
# BASH menu script that checks:
#   - Memory usage
#   - CPU load
#   - Number of TCP connections 
#   - Kernel version
##

server_name=$(hostname)

function memory_check() {
    echo ""
    echo "Memory usage on ${server_name} is: "
    free -h
    echo ""
}

function cpu_check() {
    echo ""
    echo "CPU load on ${server_name} is: "
    echo ""
    uptime
    echo ""
}

function tcp_check() {
    echo ""
    echo "TCP connections on ${server_name}: "
    echo ""
    cat  /proc/net/tcp | wc -l
    echo ""
}

function kernel_check() {
    echo ""
    echo "Kernel version on ${server_name} is: "
    echo ""
    uname -r
    echo ""
}

function all_checks() {
    memory_check
    cpu_check
    tcp_check
    kernel_check
}

##
# Color  Variables
##
green='\e[32m'
blue='\e[34m'
clear='\e[0m'

##
# Color Functions
##

ColorGreen(){
    echo -ne $green$1$clear
}
ColorBlue(){
    echo -ne $blue$1$clear
}

menu(){
echo -ne "
My First Menu
$(ColorGreen '1)') Memory usage
$(ColorGreen '2)') CPU load
$(ColorGreen '3)') Number of TCP connections 
$(ColorGreen '4)') Kernel version
$(ColorGreen '5)') Check All
$(ColorGreen '0)') Exit
$(ColorBlue 'Choose an option:') "
        read a
        case $a in
            1) memory_check ; menu ;;
            2) cpu_check ; menu ;;
            3) tcp_check ; menu ;;
            4) kernel_check ; menu ;;
            5) all_checks ; menu ;;
        0) exit 0 ;;
        *) echo -e $red"Wrong option."$clear; WrongCommand;;
        esac
}

# Call the menu function
menu

답변1

당신은 다음과 같은 것을 할 수 있습니다

read -p 'Cmd? ' cmd
eval $cmd
  

관련 정보