Show prompt for "Yes/No" confirmation in Bash Script

  Linux   Bash    —  2020, Aug 12    

Một số trường hợp khi cài đặt hoặc chạy lệnh trong bash script. Bạn sẽ được yêu cầu nhập câu trả lời Yes hoặc No để tiếp tục thực hiện lệnh.

Vậy làm sao để hiển thị các yêu cầu người dùng nhập vào? Ví dụ, bạn muốn hiển thị xác nhận “Are you sure? (Y/n)” trước khi tiếp tục thực hiện các lệnh tiếp theo.

Rất đơn giản, bài viết sẽ hướng dẫn bạn 3 cách để thực hiện điều này trong bash script.

Prompt To Continue In Bash

Sử dụng lệnh read để tiếp tục thực hiện các lệnh trong bash script.

read -p "Are you sure? " -n 1 -r
echo    # (optional) move to a new line
if [[ ! $REPLY =~ ^[Yy]$ ]]
then
    exit 1
fi
echo "Do stuff ..."

Simple “Yes/No” Dialog In Bash

Cách này khá là phổ biến để yêu cầu người dùng xác nhận.

Kết hợp cả lệnh readcase trong bash script

while true; do
    read -p "Do you wish to install this program?" yn
    case $yn in
        [Yy]* ) make install; break;;
        [Nn]* ) exit;;
        * ) echo "Please answer yes or no.";;
    esac
done

Select From “Yes/No” Menu In Bash

Cách khác đơn giản hơn là sử dụng lệnh select

echo "Do you wish to install this program?"
select yn in "Yes" "No"
case $yn in
    Yes ) make install;;
    No ) exit;;
esac

Ref