linux shell 自动输入y,bash 脚本实现提示确认:任意键继续、输入Y/N继续

0 场景描述

你写了一个脚本,其中作了一些假设,需要提示给用户,让用户确认。这时,就需要写一个“提示确认”功能。

有两种常见的交互方式:(1)按任意键继续;(2)输入特定字符后继续(一般是 Y/N)。

这里把两种方式的 demo 代码都贴出来。

1 任意键继续

#!/bin/bash

echo " 开始执行操作. ... "

get_char()

{

SAVEDSTTY=`stty -g`

stty -echo

stty cbreak

dd if=/dev/tty bs=1 count=1 2> /dev/null

stty -raw

stty echo

stty $SAVEDSTTY

}

echo "Press any key to continue..."

echo " CTRL+C break command bash ..." # 组合键 CTRL+C 终止命令!

char=`get_char`

echo " 操作完成 .... "

2 输入 Y/N 继续

这里又分两种情况:(1)只接收一次输入,不论是什么字符,立即退出(2)循环接收输入,直到用户输入 Y(Yes) 或 N(No)。

2.1 一次输入

#!/bin/bash

read -r -p "Are You Sure? [Y/n] " input

case $input in

[yY][eE][sS]|[yY])

echo "Yes"

;;

[nN][oO]|[nN])

echo "No"

;;

*)

echo "Invalid input..."

exit 1

;;

esac

2.2 循环输入

#!/bin/bash

while true

do

read -r -p "Are You Sure? [Y/n] " input

case $input in

[yY][eE][sS]|[yY])

echo "Yes"

break

;;

[nN][oO]|[nN])

echo "No"

break

;;

*)

echo "Invalid input..."

;;

esac

done

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值