gpt4 book ai didi

linux - 如何根据用户输入更新 case 语句中的变量

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:03:20 24 4
gpt4 key购买 nike

我已经创建了一个 bash 脚本,它本质上是一个带有许多问题的向导,其中一些是多项选择题。当出现多项选择题时,我希望用户能够选择一个数字,其中每个数字对应一个不同的答案。我希望这个答案成为稍后可以在脚本中使用的变量。

我知道这就是“选择”功能的用途,但我也有一个要求,即当用户简单地点击 [ENTER] 时假定默认值。据我所知,当按下 [ENTER] 键(无效选项)并重新提示问题时,'select' 函数假定为空值 ""。

下面的代码是我尝试在按下数字时更新变量。例如,当按下数字“1”时,我希望 $hash 变量更新为“sha224”。

是否可以使用不带“select”的 case 语句来实现此目的?如果不是,我有什么选择?

echo
echo "Select a hashing algorithm"
echo "1 - sha224"
echo "2 - sha256"
echo "3 - sha384"
echo "4 - sha512"
while true; do
read -p "Option: [sha256]:" -e hash
case $hash in
"") hash="sha256" break 2;;
1) hash="sha224" break 2;;
2) hash="sha256" break 2;;
3) hash="sha384" break 2;;
4) hash="sha512" break 2;;
*) echo "Invalid Response: Please enter [1-4] and hit [ENTER] or hit [ENTER] to select 'sha256'";;
esac
done

最佳答案

  • 在所有 break 之前插入 ;
  • $hash 替换为 ${hash:=2} 以在 $hash 为空时使用默认值。
  • "") hash="sha256"break 2;; 可以删除。

关于linux - 如何根据用户输入更新 case 语句中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53863545/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com