37 lines
928 B
Bash
37 lines
928 B
Bash
message(){
|
|
#if [ -z $1 ];then
|
|
# echo "message [query] (elements) (selection items) [selection message] [command]"
|
|
# return
|
|
#fi
|
|
query="$1"
|
|
elements=("${!2}")
|
|
selitems=("${!3}")
|
|
msg="$4"
|
|
command="$5"
|
|
|
|
numElements=${#elements[@]}
|
|
|
|
# echo ${relWins[@]}
|
|
# echo $numElements
|
|
|
|
if [ $numElements -gt 1 ]; then
|
|
|
|
printf "%s\n" "${elements[@]}" | grep -i "$query" | sed '/./=' | sed '/./N; s/\n/ - /' | grep -i "$query"
|
|
echo ''
|
|
read -p "$msg (Enter q to quit) " sel
|
|
|
|
if [ "$sel" == "" ] || [ "$sel" == "q" ];then
|
|
return 1
|
|
elif ! [[ "$sel" =~ ^[0-9]+$ ]] ; then
|
|
exec >&2; echo "error: Not a number"; return 1
|
|
else
|
|
echo ''
|
|
echo ${selitems[$((sel-1))]}
|
|
$command ${selitems[$((sel-1))]}
|
|
fi
|
|
|
|
else
|
|
$command ${selitems[0]}
|
|
fi
|
|
|
|
}
|