linux - [Solved-6 Solutions] How to prompt user for Yes No Cancel input in a Linux shell script - ubuntu - red hat - debian - linux server - linux pc




Linux - Problem :

How to prompt user for Yes No Cancel input in a Linux shell script ?

Linux - Solution 1:

To get user input at a shell prompt is the read command.

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
click below button to copy the code. By - Linux tutorial - team

Here is the same example using select:

echo "Do you wish to install this program?"
select yn in "Yes" "No"; do
    case $yn in
        Yes ) make install; break;;
        No ) exit;;
    esac
done
click below button to copy the code. By - Linux tutorial - team

With select you don't need to sanitize the input – it displays the available choices, and you type a number corresponding to your choice. It also loops automatically, so there's no need for a while true loop to retry if they give invalid input.

Linux - Solution 2:

echo "Please enter some input: "
read input_variable
echo "You entered: $input_variable"
click below button to copy the code. By - Linux tutorial - team

Linux - Solution 3:

You can use the built-in read command. Use the -p option to prompt the user with a question.

read -e -p "Enter the path to the file: " -i "/usr/local/etc/" FILEPATH
echo $FILEPATH
click below button to copy the code. By - Linux tutorial - team

Linux - Solution 4:

Bash has select for this purpose.

select result in Yes No Cancel
do
    echo $result
done
click below button to copy the code. By - Linux tutorial - team

Linux - Solution 5:

read -p "Are you alright? (y/n) " RESP
if [ "$RESP" = "y" ]; then
  echo "Glad to hear it"
else
  echo "You need more bash programming"
fi
click below button to copy the code. By - Linux tutorial - team

Linux - Solution 6:

#!/bin/sh

promptyn () {
    while true; do
        read -p "$1 " yn
        case $yn in
            [Yy]* ) return 0;;
            [Nn]* ) return 1;;
            * ) echo "Please answer yes or no.";;
        esac
    done
}

if promptyn "is the sky blue?"; then
    echo "yes"
else
    echo "no"
fi
click below button to copy the code. By - Linux tutorial - team

Related Searches to - linux - linux tutorial - How to prompt user for Yes No Cancel input in a Linux shell script

Adblocker detected! Please consider reading this notice.

We've detected that you are using AdBlock Plus or some other adblocking software which is preventing the page from fully loading.

We don't have any banner, Flash, animation, obnoxious sound, or popup ad. We do not implement these annoying types of ads!

We need money to operate the site, and almost all of it comes from our online advertising.

Please add wikitechy.com to your ad blocking whitelist or disable your adblocking software.

×