[shell] Probleem met shell script

Pagina: 1
Acties:

  • voodooless
  • Registratie: Januari 2002
  • Laatst online: 22:20

voodooless

Sound is no voodoo!

Topicstarter
Ik ben bezig met software voor mijn EPIA DVD player. Ik heb nu een autorun groggy draaien dat scripts kan uitvoeren zodra er een DVD, audio- of data-CD in de player wordt gedaan (automatisch dus). Script's voor DVD-player en audio player heb ik al. Als het een dada cd moet ie kijken wat er op de cd staat: Als er mp3 op staan moet ie xmms opstarten (xmms -p /dvd/*.mp3 iod). Als er avi's opstaan moet ie xine opstarten (xine -pfg /dvd/*.avi), en als er m3u's opstaan weer xmms (xmms -p /dvd/*.m3u). Eventueel wordt dit nog uitgebreider, maar dit is de basis.

Ik had zo ongeveer het volgende shell scriptje bedacht (syntax kan niet helemaal kloppen maar dat boeit even niet):
code:
1
2
3
4
5
6
7
8
9
10
#!/bin/sh
if [ -e /dvd/*.mp3 ]; then
   xmms -p /dvd/*.mp3
else
if [ -e /dvd/*.m3u ]; then
   xmms -p /dvd/*.m3u
else 
if [ -e /dvd/*.avi ]; then
   xine -pfg /dvd/*.avi
fi

Wat is nu het probleem: Als er een mp3, avi of m3u bestand op de cd-rom staat, is alles oke. Als het er echter meer zijn, krijg ik de foutmelding dat er te veel argumenten worden meegegeven in de if's. Hoe moet ik dit nu doen? Ik heb geen expert in shell scripts, en heb al overal gezocht maar niets gevonden, dus ik vraag het maar ff.

Do diamonds shine on the dark side of the moon :?


Verwijderd

Misschien moet je maar eens een paar extra fi 's toevoegen.

  • Wilke
  • Registratie: December 2000
  • Laatst online: 23:07
Verwijderd schreef op 11 December 2002 @ 15:45:
Misschien moet je maar eens een paar extra fi 's toevoegen.


Ja, of 'elif's, maar hij zei al dat je daar even niet op moest letten :)

Het probleem is dat bash dit expand tot:

[ -e /dvd/bla.mp3 /dvd/bladiebla.mp3 /dvd/meerbla.mp3 ]

En dat werkt dus niet.

Je kunt zoiets proberen:

code:
1
2
3
4
5
6
7
[nohtml]
if [ `ls /dvd/*.mp3 2>/dev/null | wc | awk '{print $1}'` != 0 ]; then
  echo Er staan MP3s op;
elif [etcetera]
  ...
fi
[/nohtml]

  • odysseus
  • Registratie: Augustus 2000
  • Laatst online: 16-05 16:33

odysseus

Debian GNU/Linux Sid

je kunt dat ook wel iets makkelijker doen dan Wilke voorstelt:
code:
1
if [ `ls /dvd/*.mp3 2>/dev/null | head -1` ]; then

Leven is het meervoud van lef | In order to make an apple pie from scratch, you must first create the universe.


  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 15-05 13:11

deadinspace

The what goes where now?

Probeer er eens "" omheen te zetten, dus
code:
1
if [ -e "/dvd/*.mp3" ]; then

enz...
Daardoor wordt het één argument. Bash expand variabelen ($var of ${var}) in "" wel, maar ik weet niet zeker of hij * in "" ook expand...

  • RvdH
  • Registratie: Juni 1999
  • Laatst online: 28-04 08:10

RvdH

Uitvinder van RickRAID

deadinspace schreef op 11 December 2002 @ 16:21:
Probeer er eens "" omheen te zetten, dus
code:
1
if [ -e "/dvd/*.mp3" ]; then

enz...
Daardoor wordt het één argument. Bash expand variabelen ($var of ${var}) in "" wel, maar ik weet niet zeker of hij * in "" ook expand...
Dat gaat niet werken, tenzij er een bestand dat *.mp3 heet in die dir staat, en dat wil je ook niet.

  • Wilke
  • Registratie: December 2000
  • Laatst online: 23:07
Mja, ik moet dingen altijd ingewikkelder doen dan nodig ofzo...het werkt iig wel :)

  • voodooless
  • Registratie: Januari 2002
  • Laatst online: 22:20

voodooless

Sound is no voodoo!

Topicstarter
Bedankt jongens _/-\o_ _/-\o_ _/-\o_ !

Ik kan weer vooruit! Eigenlijk een schande dat ik als echte linux gebruiker nog weinig kaas heb gegeten van shell scrips. Ik moet er toch maar eens induiken :).

Do diamonds shine on the dark side of the moon :?


  • ajvdvegt
  • Registratie: Maart 2000
  • Laatst online: 04-12-2025
Misschien een stomme vraag hoor, maar hoe werkt die 'auto-run' feature, via automount? Heb je misschien een linkje naar meer info hierover?

I don't kill flies, but I like to mess with their minds. I hold them above globes. They freak out and yell "Whooa, I'm *way* too high." -- Bruce Baum


  • voodooless
  • Registratie: Januari 2002
  • Laatst online: 22:20

voodooless

Sound is no voodoo!

Topicstarter
autorun heb ik ergens gevonden via google. linkje: http://autorun.sourceforge.net/

Do diamonds shine on the dark side of the moon :?

Pagina: 1