I have a script that I am making and I have an issue with it: I would like to pause execution and wait for user input. I thought that I had it with the read -p -n 1 $foo
command but the system is having issues with this command. Here is my current script:
#!/bin/sh
Ititialization
mainmenu () {
echo "Press 1 to update your system"
echo "Press 2 to install samba"
echo "Press 3 to install vsFTPd"
echo "Press 4 to install the current version of Webmin"
echo "Press 5 to configure samba for Active Directory"
echo "Press x to exit the script"
read -n 1 -p "Input Selection:" mainmenuinput
if [ "$mainmenuinput" = "1" ]; then
updatesystem
elif [ "$mainmenuinput" = "2" ]; then
installsamba
elif [ "$mainmenuinput" = "3" ]; then
installvsftpd
elif [ "$mainmenuinput" = "4" ]; then
installwebmin
elif [ "$mainmenuinput" = "5" ]; then
configuresambaforactivedirectory
elif [ "$mainmenuinput" = "x" ];then
quitprogram
elif [ "$mainmenuinput" = "X" ];then
quitprogram
else
echo "You have entered an invallid selection!"
echo "Please try again!"
echo ""
echo "Press any key to continue..."
read -n 1
clear
mainmenu
fi
}
This builds the main menu and routs the user to the function selected.
mainmenu
This executes the main menu function.
Let the fun begin!!!! WOOT WOOT!!!!
You may notice at the mainmenu
function the read -n 1 -p "text goes here"
entry. That is where I am having the issue according to ubuntu. Can somebody tell me what is going wrong? thanks!
#!/usr/bin/env bash
or#!/bin/bash
. – geirha Apr 13 '14 at 12:01read
andsh
(instead ofbash
) were also causing trouble. – Cadoiz Nov 05 '21 at 13:25