Behöver hjälp med ett skript.

Permalänk
Medlem

Behöver hjälp med ett skript.

Jag vill att min msn klient (Mercury) ska visa vilken låt/grupp/album jag spelar som personligt meddelande.

Hittils har jag använt mig av amsn's skript som jag ändrat lite på men inte fått det att funka som jag vill.

#! /bin/bash EXAILE=`ps aux | grep exaile | grep -v grep | grep -v info` if [ "$EXAILE" ] then exaile -q 2>/dev/null | sed 's/status:\ //g' | sed 's/\playing\ self:\ //g' \ | sed 's/\ artist:\ /\n/g' | sed 's/\ album:\ /\ -\ /g' \ | sed 's/\ length:\ /\n/g' | sed 's/\ position:\ //g' else echo 0 fi exit 0

Detta ger:

Låtnamn
Gruppnamn - Albumnamn
Hur långt låten gått i % samt sekunder i en enda ihopsittade rad.

Det jag vill göra är att få bort sista raden helt.

exaile -q ger följande:

status: playing self: Discovery artist: Dio album: Magica length: 0:54 position: %599 [5:23]

Någon här på swec har redan löst det en gång med detta skript:

#! /bin/bash EXAILE=`ps aux | grep exaile | grep -v grep | grep -v info` if [ "$EXAILE" ] then /usr/local/bin/exaile -q 2>/dev/null | sed 's/.* self: \(.*\) artist: $ else echo fi exit 0

Dock har det slutat fungera.

Det ger

line 6: unexpected EOF while looking for matching `'' line 11: syntax error: unexpected end of file

Nån som har en idé?

Visa signatur
Permalänk
Hedersmedlem

Det saknas väl en apostrof på sjätte raden, som den säger. Sätt en ' sist på sjätte raden och testa igen.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Medlem

där ser ut att saknas mer på den raden än en enkelappostrof. är för seg för att tänka nu så du får försöka fixa det själv.

Visa signatur

enlisy Systemd
WS1: X2 4400+ | WS2: X2 4000+ | Laptop: Athlon2 P520 | Server: XP 2400+

Permalänk
Medlem

Sätter jag dit en apostrof där så får jag :

sed: -e expression #1, char 28: unterminated `s' command

Visa signatur
Permalänk
Medlem

alltså du saknar grejer ...
prova att lägga till en cut i första skriptet istället.

#!/bin/bash EXAILE=$(ps aux | grep exaile | grep -v grep | grep -v info) if [ "$EXAILE" ] then exaile -q 2>/dev/null | sed 's/status:\ //g' | sed 's/\playing\ self:\ //g' \ | sed 's/\ artist:\ /\n/g' | sed 's/\ album:\ /\ -\ /g' \ | sed 's/\ length:\ /\n/g' | sed 's/\ position:\ //g' \ | cut -d \n -f 1,2 else echo 0 fi exit 0

Visa signatur

enlisy Systemd
WS1: X2 4400+ | WS2: X2 4000+ | Laptop: Athlon2 P520 | Server: XP 2400+

Permalänk
Medlem

Det ger:

Dream Evil
Dio - Diamonds - The Best Of Dio
4:29%54 [2:27]

Alltså samma som det första skriptet oförändrat.

Visa signatur
Permalänk
Medlem

hmm, sorry, det var ett tag sen jag hackade runt i skalet.
prova detta:

#!/bin/bash EXAILE=$(ps aux | grep exaile | grep -v grep | grep -v info) if [ "$EXAILE" ] then exaile -q 2>/dev/null | sed 's/status:\ //g' | sed 's/\playing\ self:\ //g' \ | sed 's/\ artist:\ /\n/g' | sed 's/\ album:\ /\ -\ /g' \ | sed 's/\ length:\ /\t/g' | sed 's/\ position:\ //g' \ | cut -f 1 else echo 0 fi exit 0

Visa signatur

enlisy Systemd
WS1: X2 4400+ | WS2: X2 4000+ | Laptop: Athlon2 P520 | Server: XP 2400+

Permalänk
Medlem

Underbart Jonos det där gjorde susen!

Och du, be inte om ursäkt för att du hjälper till!

Tackar så hemskt mycket

Visa signatur
Permalänk
Medlem

ok bra att det funkar, men hade nog inte skadat om du hade lärt dig litet skalskriptning så hade du klarat dig själv nästa gång halva skriptet försvinner. du vet *nix filosofin "learn once, use for a lifetime".

Visa signatur

enlisy Systemd
WS1: X2 4400+ | WS2: X2 4000+ | Laptop: Athlon2 P520 | Server: XP 2400+

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Jonos
ok bra att det funkar, men hade nog inte skadat om du hade lärt dig litet skalskriptning så hade du klarat dig själv nästa gång halva skriptet försvinner. du vet *nix filosofin "learn once, use for a lifetime".

Hehe sant så sant. Ska börja läsa programmering efter jul och kanske jag tar mig för å lär mig lite skripting när jag ändå är i farten

Än en gång tack

Visa signatur