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

As a Linux user or administrator, there may come a time when you need to prompt a user for a simple yes, no, or cancel input in a shell script. This can be useful for a variety of purposes, such as confirming an action before executing it or providing options to a user in a user-friendly manner. In this tutorial, you will learn how to prompt for yes/no/cancel input in a Linux shell script.

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

By following the below given steps, you can prompt yes/no/cancel input in linux shell script:

  • Step 1: Define the function
  • Step 2: Call the function
  • Step 3: Test the script

Step 1: Define the function

The first step is to define a function that will handle the user input. In this case, you will call the function “get_input”. Here’s an example of how to define the function:

get_input () {
  while true; do
    read -p "Do you want to proceed? [y/n/c]" yn
    case $yn in
      [Yy]* ) return 0;;
      [Nn]* ) return 1;;
      [Cc]* ) return 2;;
      * ) echo "Please answer y or n or c.";;
    esac
  done
}

This function prompts the user for input by displaying the message “Do you want to proceed? [y/n/c]”. The user’s input is stored in the variable “yn”. The function then uses a case statement to determine the user’s input. If the user enters “y” or “Y”, the function returns 0. If the user enters “n” or “N”, the function returns 1. If the user enters “c” or “C”, the function returns 2. If the user enters any other input, the function displays the message “Please answer y or n or c.” and prompts the user again.

Step 2: Call the function

Once the function is defined, you can call it in your shell script. Here’s an example of how to call the function:

#!/bin/bash

echo "This is a sample script that prompts for user input."

if get_input; then
  echo "You selected yes."
else
  echo "You selected no."
fi

In this example, the script first displays the message “This is a sample script that prompts for user input.” It then calls the “get_input” function. If the user selects “yes” by entering “y” or “Y”, the script displays the message “You selected yes.” If the user selects “no” by entering “n” or “N”, the script displays the message “You selected no.” If the user selects “cancel” by entering “c” or “C”, the script does not display any message.

Step 3: Test the script

To test the script, save it to a file (e.g., “test.sh”) and make it executable by running the command “chmod +x test.sh”. Then, run the script by typing “./test.sh” in the terminal. The script should display the message “This is a sample script that prompts for user input.” and prompt the user to select “yes”, “no”, or “cancel”. The script should then display the appropriate message based on the user’s selection.

Conclusion

Prompting for yes/no/cancel input in a Linux shell script is a useful feature that can help users make informed decisions and avoid accidental actions. By defining a function that handles the user input and calling it in your script, you can easily add this feature to your own shell scripts.

Recommended Tutorials

AuthorDevendra Dode

Greetings, I'm Devendra Dode, a full-stack developer, entrepreneur, and the proud owner of Tutsmake.com. My passion lies in crafting informative tutorials and offering valuable tips to assist fellow developers on their coding journey. Within my content, I cover a spectrum of technologies, including PHP, Python, JavaScript, jQuery, Laravel, Livewire, CodeIgniter, Node.js, Express.js, Vue.js, Angular.js, React.js, MySQL, MongoDB, REST APIs, Windows, XAMPP, Linux, Ubuntu, Amazon AWS, Composer, SEO, WordPress, SSL, and Bootstrap. Whether you're starting out or looking for advanced examples, I provide step-by-step guides and practical demonstrations to make your learning experience seamless. Let's explore the diverse realms of coding together.

Leave a Reply

Your email address will not be published. Required fields are marked *