linux progamm schreiben

marcc

marcc

Tripel-As
Hallo.
Für meine Radiostreams nutze ich mplayer. da es langsam unübersichtlich wird, für jeden stream ein alias zu definieren würde ich gerne ein kleines konsolen-programm schreiben.

radio <TAB>
1_stream 2_stream 3_stream

radio 1<TAB> <ENTER>
mplayer http://Stream:8080

Hat jemand eine Idee wie ich das hinbekomme?
 
Mit C kenn ich mich ein bischen aus.

Nur wie muss ich das angehen?
 
Hi,

und wenn du mehr Infos als die von foexle willst, muesstest du mal erklaeren was du eigentlich tun willst, denn aus deiner Beschreibung werde ich nicht wirklich schlau.

Wenn du mit <TAB> bash completion meinst, wirst du dich damit mal ein wenig auseinandersetzen muessen (configs zu finden unter /etc/bash_completion und eventuell /etc/bash_completion.d/).

mfg,
bytepool
 
Von z.B. aptitude kenn ich das mit dem TAB.
Code:
mrcfl@thkpad:~$ aptitude 
autoclean       forget-new      purge           unhold
changelog       full-upgrade    reinstall       unmarkauto
clean           hold            remove          update
dist-upgrade    install         safe-upgrade    upgrade
download        keep-all        search          why
forbid-version  markauto        show            why-not
Da sollte
1_stream usw. aufgelistet werden dass dann 'mplayer URL' in der konsole ausführt.

der gesamte befehl also: 'radio 1_stream'

nur 'radio' in der konsole ausgeführt könnte ja eine kleine man-page oder änliches anzeigen.
 
Hi,

siehe meinen vorherigen Post. Das ist ein feature der bash, du suchst bash_completion. Dafuer musst du grundlegend "Shellskripten" koennen.

mfg,
bytepool
 
Also ich kann dir hier auch nur eher zur Bash raten als zu C.
 
Also ich würde (wenn ich sowas bräuchte) es so machen:
ein kleines C-Programm, welches als Argument eine String mit dem Namen von einem Radiostream (z.B. StarFM) übernimmt und dann aus einer Datei, oder im Sourcecode gespeicherten Infos mit System() den mplayer Aufruf automatisch mit der richtigen Streamaddresse machen.
Alternativ kannst du dich auch mit Playlists und so auseinandersetzen. Damit müsstest du dann das ganze so hinbekommen, dass du dann mplayer mit dem Names des Streams bzw. der Playlist aufrufst. Aber damit kenne ich mich nicht so gut aus.

Grüße, Blender3D

Edit: natürlich hätte man bei meiner Lösung dann keine Bash-completion zur Verfügung!
 
Du könntest doch z.B. eine Textdatei erzeugen, wo eine Streamkurzbezeichnung und die Streamadresse in 2 Spalten (mit Trennzeichen) abgelegt ist.
Dann ein script (z.B. perl) was entweder die Kurzbezeichnung als Parameter entgegennimmt und dann in der Liste die passende 2te Spalte d.h. den Stream sucht und dem mplayer übergibt oder falls kein Parameter angegeben wird, die 1te Spalte der Liste anzeigt.

Also sinngemäß auf die Schnelle ohne korrekte syntax:
wenn Parameter dann öffne Datei, lese zeile 1 links von Trennzeichen
tue solange nicht gefunden vergleiche Parameter mit linker Teil
nächste Zeile
Wenn gefunden dann starte mplayer mit rechter Teil der Zeile
ansonsten melde "nicht gefunden"
Wenn kein Parameter oder "nicht gefunden" tue von zeile 1 bis Ende der Datei
Zeige linker Teil von Zeile
nächste Zeile
 

Ähnliche Themen

MangoHud Version v0.6.9: Neue Parameter für das Linux-Performance-Overlay

Arch Linux Iso Image verifizieren

Erweiterbarer Wrapper für GNU find

PATH wird nicht richtig durchsucht

[Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter

Zurück
Oben