Toon posts:

[Bash]Hulp nodig met mijn script.

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb geprobeerd een script te schrijven die de datum en het huidige nummer weergeeft. Het is de bedoeling dat dit script om de tien seconden opnieuw wordt uitgevoerd mits het proces van mijn "window manager" nog niet beeindigd is.

Als ik mijn window manager opstart, start dit script automatisch ook, maar ik krijg de volgende fout terug:
line 25: \#81E234\: command not found
Het volledige script is in de volgende link:
http://pastebin.com/UDKw9mWH

Kan iemand mij duidelijk maken wat precies fout is?

Acties:
  • 0 Henk 'm!

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Eeehhhm..

Mijn vraag aan jou is: wat denk je zélf wat er mis gaat?

Want er staan in je eigen topicstart toch best wel aardig wat goeie hints naar wat fatsoenlijk debugging.

Mocht je er overheen kijken, de error zit in LINE 25 en hij kan het commando `\#81E234\` niet uitvoeren. Hey, guess what er mis gaat?

Acties:
  • 0 Henk 'm!

  • HellStorm666
  • Registratie: April 2007
  • Laatst online: 29-09 23:01

HellStorm666

BMW S1000XR / Audi S6 Avant C7

wss
RED="\\#D7875F\\"
GREEN="\\#81E234\\"
YELLOW="\\#DFAF8F\\"
BLUE="\\#729CFC\\"
MAUVE="\\#AD7FA8\\"
WHITE="\\#BEBEBE\\"
DEFAULT="\\#BEBEBE\\"

vervangen door:
RED="\#D7875F\"
GREEN="\#81E234\"
YELLOW="\#DFAF8F\"
BLUE="\#729CFC\"
MAUVE="\#AD7FA8\"
WHITE="\#BEBEBE\"
DEFAULT="\#BEBEBE\"

Scientia Potentia Est
Xbox-Live GamerTag: H3llStorm666
19x Q.Cell G5 325wp op APsystems QS1


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Osiris schreef op maandag 28 november 2011 @ 17:54:
Eeehhhm..

Mijn vraag aan jou is: wat denk je zélf wat er mis gaat?

Want er staan in je eigen topicstart toch best wel aardig wat goeie hints naar wat fatsoenlijk debugging.

Mocht je er overheen kijken, de error zit in LINE 25 en hij kan het commando `\#81E234\` niet uitvoeren. Hey, guess what er mis gaat?
Ik begrijp dat dat geen commando is :P.
Maar wat ik probeerde was een variabele maken voor elke kleur, voor meer overzicht.
Hoe kan ik zorgen dat mijn script mijn variabele niet uitgevoerd wordt als commando?

Want iets als
#!/bin/bash
$FOO="Hallo"
echo $FOO
zou gewoon moeten werken toch?
en ik heb per ongeluk de functie statustext er in gelaten. Ik zal de pastebin even updaten zonder dat erbij.
HellStorm666 schreef op maandag 28 november 2011 @ 17:57:
wss
RED="\\#D7875F\\"
GREEN="\\#81E234\\"
YELLOW="\\#DFAF8F\\"
BLUE="\\#729CFC\\"
MAUVE="\\#AD7FA8\\"
WHITE="\\#BEBEBE\\"
DEFAULT="\\#BEBEBE\\"

vervangen door:
RED="\#D7875F\"
GREEN="\#81E234\"
YELLOW="\#DFAF8F\"
BLUE="\#729CFC\"
MAUVE="\#AD7FA8\"
WHITE="\#BEBEBE\"
DEFAULT="\#BEBEBE\"
Dat zal niet werken omdat mijn window manager de kleuren herkent met twee backslashes.

EDIT: Nieuwe "versie", het enige probleem is dat hij nu niet "looped":
http://pastebin.com/UDKw9mWH

[ Voor 25% gewijzigd door Verwijderd op 28-11-2011 18:17 ]


Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 09:53

Kees

Serveradmin / BOFH / DoC
In je eerste versie miste je domweg een 'echo' voor de tekst. In je tweede versie hergenereer je je texten nooit, dus die blijven altijd het zelfde.

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Kees schreef op maandag 28 november 2011 @ 18:29:
In je eerste versie miste je domweg een 'echo' voor de tekst. In je tweede versie hergenereer je je texten nooit, dus die blijven altijd het zelfde.
Is er hiervoor een oplossing?

Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 09:53

Kees

Serveradmin / BOFH / DoC
ja, die dingen hergeneren voor je ze output

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Kees schreef op maandag 28 november 2011 @ 18:33:
ja, die dingen hergeneren voor je ze output
Ok, maar hoe pas ik dit aan in mijn script. Bash scripting is redelijk nieuw voor mij :P.
Erg bedankt voor je hulp!

Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 09:53

Kees

Serveradmin / BOFH / DoC
copy lijn 11,12 pasta voor lijn 16.

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Kees schreef op maandag 28 november 2011 @ 19:01:
copy lijn 11,12 pasta voor lijn 16.
Ah, wat een leermoment. :P
Na wat andere aanpassingen werkt het prima.
Bedankt voor jullie hulp.
Hier is het uiteindelijke, werkende, script:
http://pastebin.com/ScbyrKcA

Acties:
  • 0 Henk 'm!

  • Ertepeller
  • Registratie: November 2010
  • Laatst online: 04-10 19:03
Alternatief en iets korter:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash

pkill -U $UID status.sh

declare -A COLOR=(
      [red]='\#d7875f\'
    [green]='\#81e234\'
   [yellow]='\#dfaf8f\'
     [blue]='\#729cfc\'
    [mauve]='\#ad7fa8\'
    [white]='\#bebebe\'
)

COLOR[default]=${COLOR[white]}

while pgrep -U $UID wmfs >&-; do
   wmfs -s "${COLOR[green]} mpd: $(ncmpcpp --now-playing)${COLOR[default]} | ${COLOR[blue]}$(date '+%H:%M - %a %d %b')${COLOR[default]}"
   sleep 10
done


En nee, er hoeven geen dubbele backslashes gebruikt te worden als ze tussen single quotes staan...

pgrep/pkill zijn erg handig als je processen wilt checken/killen, je hoeft dan tenminste niet moeilijk te doen met awk-tjes en grep -v enzo.

Acties:
  • 0 Henk 'm!

  • Rainmaker
  • Registratie: Augustus 2000
  • Laatst online: 14-07-2024

Rainmaker

RHCDS

Je hebt ook een fout in je shebang:

code:
1
2
kill $(ps U $UID | awk '/wmfs/&&/status.sh/' | grep -vi "$$\|grep\|awk" | awk '{print $1}')
#!/bin/bash/Users/Skip/.config/wmfs/status.sh


De shebang moet bovenaan staan en een geldige interpreter zijn.

Tenzij je op jouw systeem /bin/bash vervangen hebt door een directory, klopt deze niet.

We are pentium of borg. Division is futile. You will be approximated.

Pagina: 1