prestonhill
asked on
Need Part of a Bash Script take input/generate array of menu choices/take user selection/appoint value...
I have inherited a task to complete a deployment script -
It needs to query the user for a string in order to narrow down the choices of directories that were ftp or scp up to the server.
Based on the user input a partial directory list is returned of a local directory with the matching string request - this partial (or say full return if a very broad search (like just the letter a for example) needs to return to the user as input choices - aka like
1 - directory1
2 - directory2
3 - directory3
the array choices also need to be able to handle spaces and linux allowable special characters in the name
It needs to query the user for a string in order to narrow down the choices of directories that were ftp or scp up to the server.
Based on the user input a partial directory list is returned of a local directory with the matching string request - this partial (or say full return if a very broad search (like just the letter a for example) needs to return to the user as input choices - aka like
1 - directory1
2 - directory2
3 - directory3
the array choices also need to be able to handle spaces and linux allowable special characters in the name
http://www.tldp.org/LDP/abs/html/testbranch.html is a good start
You can use the dialog utility if its available on your system. Most system's come pre-installed with it, but you can install it if its not already there. An alternative would be whiptail which is more lightweight.
Lets say the directories are in /home/upload. That is:
/home/upload/dir1
/home/upload/dir2
etc
Here's a code snippet from the dialog utility program's examples
Lets say the directories are in /home/upload. That is:
/home/upload/dir1
/home/upload/dir2
etc
Here's a code snippet from the dialog utility program's examples
#!/bin/sh
exec 3>&1
FILE=`dialog --title "Please choose a directory" --dselect /home/upload/ 14 48 2>&1 1>
&3`
code=$?
exec 3>&-
case $code in
0)
echo "\"$FILE\" chosen";;
1)
echo "Button 1 (Cancel) pressed";;
2)
echo "Button 2 (Help) pressed";;
3)
echo "Button 3 (Extra) pressed";;
255)
echo "Box closed.";;
esac
ASKER
I was starting down the dialogue path - I need to get it installed on the RedHat system this script needs to run on though (not available but should not be a problem) - I am going to check out whiptail - I haven't looked at it before.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks uberpappa - that was enough of a bit of code to get me going on what I needed.