首页 > 解决方案 > 使用案例陈述创建菜单

问题描述

制作了一个请求用户正确密码(qwerty)的脚本,比较文本文件中的哈希值。参考该脚本,我必须在选择 1-7 和 8 退出时加载的其他文件夹中制作一组项目以供选择。鉴于我的评论,已经尝试了很多,但无法使其正常工作。谢谢。

#!/bin/bash

#ReadMe=`cat PasswordCheck.sh`
#echo "$ReadMe"
# https://stackoverflow.com/questions/7427262/how-to-read-a-file-into-a-variable-in-shell

#value=$(<PasswordCheck.sh)
#echo "$value"

bash PasswordCheck.sh
# https://stackoverflow.com/questions/13567947/run-bash-commands-from-txt-file

#read -sp 'PasswordCheck.sh'

Val_A="1. Create a folder"
Val_B="2. Copy a folder"
Val_C="3. Set a password"
Val_D="4. Calculator"
    Val_E="5. Create Week Folders"
    Val_F="6. Check Filenames"
    Val_G="7. Download a File"
    Val_H="8. Exit"

    #read -sp 'UserPassword : ' Pass_Var 

    #PwdChk='PasswordCheck.sh'

#if read exit O "PasswordCheck.sh" exit 0 "$SecretHashedPassword"; then
if read "qwerty"; then
    echo "1. Create a folder
    2. Copy a folder
    3. Set a password
    4. Calculator
    5. Create Week Folders
    6. Check Filenames
    7. Download a File
    8. Exit"
    exit 0

else
    echo "Goodbye"
    exit 1

fi
#case $Val_A in
    #9) echo "Create a folder selected";;
    #8|pork) echo "IDK...";;
    #*) echo "Please select a response from numbers 1-4.";;
#esac
    #"2. Copy a folder"
    #"3. Set a password"
    #exit 0

#https://www.linkedin.com/learning/search?entityType=VIDEO&keywords=bash%20case&u=2072140

#if ["$Val_A" -eq "1"]; then
#bash Foldermaker.sh

#if read "1"; then

#fi

exit 0

标签: bash

解决方案


您脚本的密码检查部分对我来说仍然很模糊,但是我可以帮助您解决菜单问题。
选择可能是您设置选择菜单所需的。
下面是一个 sceleton 脚本,您可以根据需要进行扩展:

#!/bin/bash
function menu() {
        options=("Create_a_folder" "Copy_a_folder" "Set_a_password" "Calculator" "Create_Week_Folders" "Check_Filenames" "Download_a_File" "exit")
        echo "Choose option:" 1>&2
        select opt in ${options[@]}; do
        case ${REPLY} in
                *) choice="${options[$(( $REPLY - 1 ))]}"; break;;
        esac
        done
        echo "$choice"
}

#passwordcheck=`somefunction`
passwordcheck=true    # replace this once your function is ready
if [ "$passwordcheck" == "true" ]; then
        choice=`menu`
        [[ "$choice" == "exit" ]] && exit
        echo "You have chosen: $choice"
fi

推荐阅读