ubuntuusers.de

Variable setzen funktioniert nicht

Status: Gelöst | Ubuntu-Version: Xubuntu 14.04 (Trusty Tahr)
Antworten |

megavolt

Avatar von megavolt

Anmeldungsdatum:
9. März 2015

Beiträge: 80

Wohnort: Neustadt

Hallo,

ich bin ein Neuling in der Shell und irgendwie festgefahren. Ich weiß nicht, wie ich die Variable die ich über set gesetzt habe, nun einfügen kann.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/bash
#Parameter
set "-p mpv" #mplayer/vlc

echo "Such dir einen Sender aus, indem du die Nummer eingibst." 
# Menu
SELECTION="Stream1 Stream2 quit"

select options in $SELECTION; do

# Senderliste
if [ "$options" = "Stream1" ]; then
	livestreamer URL best ${1}
elif [ "$options" = "Stream2" ]; then
	livestreamer URL best ${1}

elif [ "$options" = "quit" ]; then
     echo "Du hast den folgenden Sender gewählt $options"

  exit

# Menu wieder anzeigen, falls nichts ausgewählt
else
    clear;
    echo "Drücke Enter um die Sender anzuzeigen und such dir einen Sender aus, indem du die Nummer eingibst."
fi
done

Ich bekomme folgende Fehlermeldung:

1
2
3
4
[cli][info] Found matching plugin letontv for URL http://leton.tv/player.php?streampage=XY
[cli][info] Available streams: live (worst, best)
[cli][info] Opening stream: live (rtmp)
error: The default player (VLC) does not seem to be installed. You must specify the path to a player executable with --player.

Also es scheint, dass die Variable ${1} nicht übergeben werden kann.

Ideen?

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13175

Mit set setzt man keine Variablen sondern höchstens die Parameter des Skriptes:

$ bash -c 'for arg; do echo "$arg"; done' -- a b c
a
b
c
$ bash -c 'set -- X Y; for arg; do echo "$arg"; done' -- a b c
X
Y 

Das set-Kommando aus Deinem Skript funktioniert auch nicht:

$ set "-p mpv"
-bash: set: - : invalid option
set: usage: set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...] 

Warum nimmst Du nicht einfach eine normale Variable?

Weitere Hinweise:

  • Benutze nur Kleinbuchstaben für Skript-Variablen, damit man sie leichter von denen der Umgebung unterscheiden kann.

  • Für die Bearbeitung der Auswahl von select bietet sich case an.

Ciao

robert

megavolt

(Themenstarter)
Avatar von megavolt

Anmeldungsdatum:
9. März 2015

Beiträge: 80

Wohnort: Neustadt

Man bin ich dämlich... Warum einfach, wenns auch kompliziert geht.

Lösung: player=mpv

case werde ich mir mal näher ansehen.

Danke!

Antworten |