linux - Bash Y/N​​ 提示也接受 ENTER 键

标签 linux bash prompt user-interaction

我正在尝试在 bash 中创建一个 Y/n 提示符的脚本,以防按下 ENTER 键来执行脚本。到目前为止,我创建的脚本只接受是/否答案,并且只阅读第一个字母而忽略其余部分:

while true; do
    read -p "Do you wish to remove this directory [Y/n]? " rmv
    rmv=${rmv,,}                                 # lower the letters in the rmv variable
    case $rmv in
        [y]* ) echo "YES"; break;;
        #[] ) echo "Enter Key"; break;;
        [n]* ) echo "NO"; exit;;
        * ) echo "Please answer yes or no! ";;   # repeat until valid answer
    esac
done

这个想法是,在 Y/y/yes/YES 或输入脚本的情况下执行某些命令,在 No/N/n/no 的情况下打破循环,在无效答案的情况下提出问题再次。我在想最好的办法是使用 OR "||"在带有“Y”大小写的行上。

最佳答案

在您的 case 语句中,您可以像这样测试空字符串:

        "") echo "Enter Key"; break;;

关于linux - Bash Y/N​​ 提示也接受 ENTER 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44027552/

相关文章:

Linux 不使用 ECHO 命令将字符串保存到文件

bash - 我怎样才能剪掉(1)驼峰字?

bash 是 没有功能

bash - 获取实际提示长度

linux - 将所选用户的 foo@bar$ 更改为 foo@bar#

linux - 在 linux 中使用循环更改目录

linux - 找出符号链接(symbolic link)的位置,Linux?

c++ - Wavefront OBJ 解析 - 为什么我总是得到不正确的数据作为输出?

c# - 通过 dbus-sharp 访问 NetworkManager 连接设置

linux - “Permission is denied”时如何显示图像