• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Standard-Konsolo-Befehle zu einem kombinieren

JanDD

Member
Hi.

ich öffne x-mal täglich die Konsole um immer das gleiche einzutippen (TV kucken):
1) cd /Documents/ivtv/utils
2) ptune-ui.pl
3) mplayer /dev/video0

Gibt es auch eine Möglichkeit, dass ich obige Anweisungen im Hintergrund lade und TV wie ein Programm/Script starten kann. Ich stelle mir das (illusorisch?) so vor, dass auf meinem Desktop eine Datei/Programm anklickbar ist und sich nun von selbst das ptune-Perl-Programm öffnet sowie der mplayer.

Möglich?
 

Martin Breidenbach

Ultimate Guru
Ja klar - schreib eine Skriptdatei.

Eine Skriptdatei ist eine Textdatei in der die Befehle drinstehen. Die Skriptdatei wird außerdem mit chmod +x ausführbar gemacht. Weiterhin sollte bei einer Skriptdatei die erste Zeile angeben welches Programm die Skriptdatei abarbeitet (bash, perl, python...). In diesem Fall also die bash. Deswegen:

Code:
#!/bin/bash
cd /Documents/ivtv/utils
ptune-ui.pl
mplayer /dev/video0
 
OP
J

JanDD

Member
Nachtrag: Wie würde die Zeile aussehen, damit der Nutzer, der das Shell-Skript ausführt, selbst in ein Eingabefenster eingeben kann, ob dev/video0 oder dev/video1 usw.zu starten ist. Ist dies möglich? Kenne mich in diesem Gebiet leider nicht aus. Sry.
 

oc2pus

Ultimate Guru
ja klar ist das möglich ;)

lies dich mal ein wenig hier ein:
Advanced Bash-Scripting Guide
An in-depth exploration of the art of shell scripting
http://www.tldp.org/LDP/abs/html/

wenn du dein script überarbeitet hast und Probleme auftauchen, meldest du dich wieder ;)
 
OP
J

JanDD

Member
Hi,

habe nun ein ganz einfaches Eingabebeispiel zu Hilfe genommen:

#!/bin/bash
# "Reading" variables.

echo -n "Enter the value of variable 'var1': "
# The -n option to echo suppresses newline.

read var1
# Note no '$' in front of var1, since it is being set.

echo "var1 = $var1"

Auch habe ich die Rechte für alle auf "voll" gesetzt, ausführen ist auch möglich. Wenn ich das Shell-Script aus dem Explorer heraus anklicke, passiert garnichts :(
 

oc2pus

Ultimate Guru
rufe es mal aus einer Konsole heraus auf.
aber du hast es im Prinzip schon richtig gemacht ;)

ansonsten, wenn du es als icon via Desktop starten willst, sind noch ein paar Besonderheiten zu beachten, die würde ich aber erst am Schluss angehen.
 
OP
J

JanDD

Member
Danke für den Tipp. Über die Konsole funktioniert es nun:

#!/bin/bash
echo -n "Bitte Dateiname angeben:"
read dateiname
cat /dev/video0 > $dateiname

Da das Skript aber für meine Familienmitglieder ausgelegt werden soll, denen ich keine Konsole zumuten kann, müsste es noch via Desktop gehen :) Für jeden Tipp dankbar.
 
OP
J

JanDD

Member
#!/bin/bash
echo -n "Bitte Dateiname angeben:"
read dateiname
cat /dev/video0 > $dateiname

Das Skript ist wirklich sehr primitiv; es soll nur helfen, dass meine Family "ohne Wissen" den aktuell ausgewählten TV-Channel aufnehmen kann.
 

oc2pus

Ultimate Guru
ok, aber dieses script schreibt etwas in eine Variable <dateiname>, danach beendet sich das script und die Variable ist weg.

Deshalb musst du erst deine Abfragen nach dateiname und channel erledigen und im gleichen Script die anderen Befehle unterbringen.
 
OP
J

JanDD

Member
Hi oc2pus,

den Channel brauche ich nicht zu bestimmen, da ich das schon mit einem extra-script gemacht habe. Ich benötigen nur $dateiname.

Deshalb musst du erst deine Abfragen nach dateiname und channel erledigen und im gleichen Script die anderen Befehle unterbringen.

Die Abfrage nach $dateiname ist ja erledigt mit read dateiname...Was meinst du mit andere Befehle? Der Befehl ist ja nur der eine: cat /dev/video0 > $dateiname. Beides ist im Script, nur eben geht es derzeit leider nur via Konsole.
 
Oben