bash - 使用案例陈述创建菜单
问题描述
制作了一个请求用户正确密码(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
解决方案
您脚本的密码检查部分对我来说仍然很模糊,但是我可以帮助您解决菜单问题。
选择可能是您设置选择菜单所需的。
下面是一个 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
推荐阅读
- php - Laravel - 重置密码时需要令牌字段
- android - 我添加到清单,但 android 权限,但它丢失了
- spring-integration - 通过某些事件spring集成dsl从通道接收消息
- azure-devops - “az 管道运行变量”没有按我预期的方式工作
- swift - 如何从异常中获取自定义消息?
- c# - 更改 ItemsSource 后,Bing 地图未更新 GUI
- typescript - react-final-form 自定义方法打字稿
- ios - 使用 Swift 包管理器添加自动第三方库确认和许可证
- git - 运行 ssh git@github.com 会给出我的用户名和我的一个存储库
- php - WP_Query - 按分类术语的元数据排序