我想在一个有潜在危险的bash脚本的顶部快速提示“你确定吗?”以进行确认,最简单/最好的方法是什么?


当前回答

这样您就可以得到“y”、“yes”或“Enter”

 read -r -p "Are you sure? [Y/n]" response
 response=${response,,} # tolower
 if [[ $response =~ ^(y| ) ]] || [[ -z $response ]]; then
    your-action-here
 fi

如果您正在使用zsh,请尝试以下操作:

read "response?Are you sure ? [Y/n] "
response=${response:l} #tolower
if [[ $response =~ ^(y| ) ]] || [[ -z $response ]]; then
    your-action-here
fi

其他回答

echo are you sure?
read x
if [ "$x" = "yes" ]
then
  # do the dangerous stuff
fi

尝试read shell内置:

read -p "Continue (y/n)?" CONT
if [ "$CONT" = "y" ]; then
  echo "yaaa";
else
  echo "booo";
fi
[[ -f ./${sname} ]] && read -p "File exists. Are you sure? " -n 1

[[ ! $REPLY =~ ^[Yy]$ ]] && exit 1

在函数中使用此选项查找现有文件并在覆盖之前提示。

这是我在其他地方找到的,有更好的版本吗?

read -p "Are you sure you wish to continue?"
if [ "$REPLY" != "yes" ]; then
   exit
fi

qnd:使用

read VARNAME
echo $VARNAME

对于没有读线支持的单行响应。然后根据需要测试$VARNAME。