Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #http://pastebin.com/tq2XgnGe
- #Autor [email protected] (Licence GNU GPL)
- start=1
- tput civis
- trap "stty $(stty -g)" EXIT
- stty -echo -ixon -icanon time 2 || exit $? # Zakaž klávesu PAUSE/BREAK
- KEYS="" ; IFS=$'\a'
- ttt=("Volba 1" "Volba 2" "Volba 3" "Volba 4" "Volba 5" "Volba 6" "Volba 7" "Volba 8" "Volba 9" "Volba 10" "Volba 11" "Volba 12" "Volba 13" "Volba 14" "Volba 15")
- ap=0; let start--
- pp=${#ttt[@]}
- mp=5
- if ((pp < mp)) ; then let mp=pp ; fi
- posun_seznamu=0
- center=0
- acc=5
- function zobraz ()
- {
- let tmpap=ap ; let tmpap++
- echo -en "\033[1;1H"
- echo "ESC = Konec , ENTER = výběr volby"
- let posa=$posun_seznamu ; let posb=($posun_seznamu+$mp)
- let posa=($posa + $center) ; let posb=($posb + $center)
- echo -e "\033[1m\033[46m \e[0m"
- for ((i=$posa; i<($posb); i++ ))
- do
- if [ $ap = $i ]
- then
- echo -e "\033[1m\033[46m \e[0m\033[1m\033[44m${ttt[i]}\e[0m\033[1m\033[46m \e[0m"
- else
- echo -e "\033[1m\033[46m \e[0m\033[30m\033[47m${ttt[i]}\e[0m\033[1m\033[46m \e[0m"
- fi
- done
- echo -e "\033[1m\033[46m \e[0m"
- }
- for ((l=0; l<($start); l++ ))
- do
- zobraz
- if ((ap < (pp -1 ) )) ; then
- let ap++
- if (((center + (mp -1)) < ap)) ; then let center++ ; fi
- fi
- done
- trap '' 2 # Při stisku ctrl+c jen obnov obrazovku.
- trap '' SIGTSTP # Při stisku ctrl+z jen obnov obrazovku.
- zobraz
- while [ 1 ]; do
- while read -t 0 ; do read -s -r -d "" -N 1 -t 0.2 CHAR && KEYS="$KEYS$CHAR" || break # cyklus čtení klávesnice
- done
- if [ -z "$KEYS" ]; then sleep 0.05 ; continue ; fi
- case "$KEYS" in
- $'\x1B\x5B\x42'*)
- KEYS="${KEYS##???}" # Klávesa DOWN stlačena
- if ((ap < (pp -1 ) )) ; then
- let ap++
- if (((center + (mp -1)) < ap)) ; then let center++ ; fi
- fi
- zobraz
- ;;
- $'\x1B\x5B\x41'*)
- KEYS="${KEYS##???}" # Klávesa UP stlačena
- if ((ap > 0)); then
- let ap--
- if ((ap < posa )) ; then let center-- ; fi
- fi
- zobraz
- ;;
- $'\n'*|$'\r'*)
- KEYS="${KEYS##?}" # Klávesa ENTER stlačena
- echo "Vybraná položka : ${ttt[ap]} "
- tput cnorm # Zobraz kurzor
- stty ixany icanon # Povol PAUSE/BREAK
- trap - 2
- trap - SIGTSTP
- exit 0
- ;;
- $'\x1B')
- KEYS="${KEYS##?}" # Klávesa ESC stlačena
- echo "Program ukončen ..."
- tput cnorm
- stty ixany icanon # Povol PAUSE/BREAK
- trap - 2 # Povol ctrl+c
- trap - SIGTSTP # Povol ctrl+z
- exit 0
- ;;
- [$'\x01'-$'\x1F'$'\x7F']*)
- KEYS="${KEYS##?}"
- ;;
- *)
- KEY="${KEYS:0:1}"
- KEYS="${KEYS#?}"
- ;;
- esac
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement