Adde snippits
This commit is contained in:
54
Linux/Lag_Selectord.sh
Normal file
54
Linux/Lag_Selectord.sh
Normal file
@@ -0,0 +1,54 @@
|
||||
#!/bin/bash
|
||||
# Purpose: Demonstrate usage of select and case with toggleable flags to indicate choices
|
||||
# 2013-05-10 - Dennis Williamson
|
||||
|
||||
choice () {
|
||||
local choice=$1
|
||||
if [[ ${opts[choice]} ]] # toggle
|
||||
then
|
||||
opts[choice]=
|
||||
else
|
||||
opts[choice]=+
|
||||
fi
|
||||
}
|
||||
|
||||
PS3='Please enter your choice: '
|
||||
while :
|
||||
do
|
||||
clear
|
||||
options=("Option 1 ${opts[1]}" "Option 2 ${opts[2]}" "Option 3 ${opts[3]}" "Done")
|
||||
select opt in "${options[@]}"
|
||||
do
|
||||
case $opt in
|
||||
"Option 1 ${opts[1]}")
|
||||
choice 1
|
||||
break
|
||||
;;
|
||||
"Option 2 ${opts[2]}")
|
||||
choice 2
|
||||
break
|
||||
;;
|
||||
"Option 3 ${opts[3]}")
|
||||
choice 3
|
||||
break
|
||||
;;
|
||||
"Option 4 ${opts[4]}")
|
||||
choice 4
|
||||
break
|
||||
;;
|
||||
"Done")
|
||||
break 2
|
||||
;;
|
||||
*) printf '%s\n' 'invalid option';;
|
||||
esac
|
||||
done
|
||||
done
|
||||
|
||||
printf '%s\n' 'Options chosen:'
|
||||
for opt in "${!opts[@]}"
|
||||
do
|
||||
if [[ ${opts[opt]} ]]
|
||||
then
|
||||
printf '%s\n' "Option $opt"
|
||||
fi
|
||||
done
|
||||
Reference in New Issue
Block a user