Ubuntu User Desktop+ (Vorschau)
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Bash-Workshop: Teil 3<br />
Programmieren<br />
Listing 1: „musiksammlung.sh“<br />
01 #!/bin/bash<br />
02 #<br />
03 # Hier kommt gewöhnlich auskommentiert eine Kopfzeile mit Copyright, Programmname, Version etc. hin<br />
04 #<br />
05 # Variablen definieren<br />
06 TERM=linux<br />
07 weiter=true<br />
08 playerkommando='mplayer'<br />
09 erg=/tmp/menueerg$$<br />
10 tmp=/tmp/menuetmp$$<br />
11 <br />
12 # externe Funktionen aus Listing 1 inkludieren<br />
13 . musiksammlung.func<br />
14 <br />
15 # Vorbereitungen<br />
16 umask 077<br />
17 <br />
18 # Hauptprogramm<br />
19 dialogtest<br />
20 dialog ‐‐infobox "Auswahlmenü Musiksammlung\n(co) Stockmayer\n13.09.2011" 0 0<br />
21 sleep 3<br />
22 cd ${1:‐~/Musik}<br />
23 while $weiter<br />
24 do<br />
25 dialog ‐‐menu "Auswahlmenue Musiksammlung\n$(date '+%d.%m.%Y')\n$(pwd)" 0 0 0 \<br />
26 1 "Anzeigen aller Titel" \<br />
27 2 "Suchen nach Titel" \<br />
28 3 "Abspielen eines Titels" \<br />
29 4 "Ende" 2> $erg<br />
30 echo<br />
31 case "$(cat $erg)" in<br />
32 1) anzeigen > $tmp<br />
33 dialog ‐‐title "Anzeigen aller Titel" ‐‐textbox "$tmp" 0 0<br />
34 ;;<br />
35 2) dialog ‐‐inputbox "Bitte Titel angeben" 0 0 2> $erg<br />
36 suchen "$(cat $erg)" | awk '{ printf("%d %s ",NR,$0 ) }' > $tmp<br />
37 dialog ‐‐title "Anzeigen der gefunden Titel" ‐‐menu "Bitte wählen" 0 0 0 \<br />
38 0 Ende $(cat $tmp)<br />
39 ;;<br />
40 3) dialog ‐‐inputbox "Bitte Titel angeben\noder [Eingabe] drücken." 0 0 2> $erg<br />
41 such="$(cat $erg)"<br />
42 suchen "$such" | awk '{ printf("%d %s ",NR,$0 ) }' > $tmp<br />
43 dialog ‐‐title "Anzeigen der gefunden Titel" ‐‐menu "Bitte wählen" 0 0 0 \<br />
44 0 Ende $(cat $tmp) 2> $erg<br />
45 nr=$(cat $erg)<br />
46 stueck=$((echo ‐n ' ';cat $tmp) | sed "s/.* ${nr} \([^ ]*\).*/\1/")<br />
47 dialog ‐‐infobox "\"$stueck\" wird abgespielt\n(beenden mit Strg‐C)" 0 0<br />
48 abspielen "$such" $(cat $erg) > /dev/null 2>&1<br />
49 ;;<br />
50 4 | '') weiter=false<br />
51 continue<br />
52 ;;<br />
53 *) echo 'Bitte eine der angegebenen Nummern wählen!'<br />
54 ;;<br />
55 esac<br />
56 done<br />
57 dialog ‐‐infobox 'see you later...' 0 0<br />
58 sleep 1<br />
59 rm ‐f $erg $tmp<br />
60 <br />
61 exit 0<br />
www.ubuntu-user.de 02/2012<br />
UBUNTU<br />
user<br />
89