我有一个shell脚本,我想询问用户是否要继续。如果他们输入“N”并按回车键,脚本就会退出。
如果他们按“y”并输入,它将继续运行。我在我的脚本顶部有这个,但不管我输入什么,它都会继续。
我做错什么了?

goon=
while [ -z $goon ]
do
    echo -n 'Do you want to continue? '
    read goon
    if [[ $goon = 'n' ]]
    then
        break
    fi
    goon=
done

最佳答案

使用无限循环和case/esac,如下所示:

while true
do
    read -r -p 'Do you want to continue? ' choice
    case "$choice" in
      n|N) break;;
      y|Y) echo 'Do your stuff here';;
      *) echo 'Response not valid';;
    esac
done

08-27 13:16