[BASH] if filexexist en echo vraagje

Pagina: 1
Acties:

  • GoVegan
  • Registratie: Juni 2002
  • Laatst online: 04-02 19:03
Wil graag klein scriptje maken om in een directory's te kijken waar zich een lock file bevind.
tis 1 van mijn eerste pogingen in bash dus...

ehm, opsomen van lijst met dirs lukt wel ook checken of er een lock file in staat gaat goed, maar daar na. dan wil ik de directory echoen, en daar gebreuren dingen die ik dus echt niet snap.

twee voor beeldjes:

code:
1
2
3
4
5
6
7
8
9
#!/bin/bash
L_FILE=lock;
for FILE in "/var/downloads/usenet/*/"
do
    #echo $FILE$L_FILE;
    if [ -e $FILE$L_FILE ] ; then
        echo $FILE$L_FILE
    fi
done

de eerst geeft mij dus mooi een lijstje van de directory's waar zich een lockfile in bevind

code:
1
2
3
4
5
6
7
8
9
#!/bin/bash
L_FILE=lock;
for FILE in "/var/downloads/usenet/*/"
do
    #echo $FILE$L_FILE;
    if [ -e $FILE$L_FILE ] ; then
        echo $FILE
    fi
done

en deze geeft me een lijstje van alle directory's in de "usenet" dir :(

ik snap dit dus echt niet :?
misschien iemand die mee beetje kan helpen.


hmm merk nu ook dat wanneer er meerde dirs met lock files zijn dat hij me de volgnede foutmelding geeft:
line 6: [: /var/downloads/usenet/mapje/lock: binary operator expected


pffff

  • zomertje
  • Registratie: Januari 2000
  • Laatst online: 03-02 16:28

zomertje

Barisax knorretje

Je moet hebben:

for FILE in $(ls /var/downloads/usenet/)

Dan gaat ie die files 1 voor 1 behandelen

het ultieme jaargetijde.... | #!/usr/bin/girl | Art prints and fun


  • JeroenE
  • Registratie: Januari 2001
  • Niet online
for FILE in $(ls /var/downloads/usenet/)
Eea heeft te maken met de double qoutes. Die zijn niet nodig en reageren blijkbaar niet zoals je denkt.

Een simpele
code:
1
for FILE in /var/downloads/usenet/*/
werkt prima. Het resultaat van beide scipts is niet veel anders (ja, er wordt iets anders geprint) omdat de test in beide scripts hetzelfde zijn.

De double quotes zorgen ervoor dat de lijst wel geexpand wordt, maar vervolgens als 1 geheel in de $FILE wordt gezet.
Edit: voor de TS: Je website is wel grappig, maar spuugt regelmatig waarschuwingen:
Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0

[ Voor 35% gewijzigd door JeroenE op 14-12-2005 14:01 ]


  • DeMoN
  • Registratie: Maart 2001
  • Laatst online: 06-01 23:13

DeMoN

Pastafari

@TS:
Is dit om meer kennis van bash op te doen of weet je niet dat dit ook anders kan?
Als dat eerste het geval is, dan sorry en negeer deze post dan maar ;)

Anders:
code:
1
 find / -name 'lock'

Geeft ook wat jij zoekt, denk ik.

Gamertag: Cosmicv0id
"Het woord Gods is voor mij niets meer dan een expressie en het product van menselijke zwakheid. De Bijbel is een verzamelwerk van legendes die achtenswaardig zijn maar ook primitief en kinderachtig.'' - Albert Einstein


  • GoVegan
  • Registratie: Juni 2002
  • Laatst online: 04-02 19:03
zomertje schreef op woensdag 14 december 2005 @ 13:36:
Je moet hebben:

for FILE in $(ls /var/downloads/usenet/)

Dan gaat ie die files 1 voor 1 behandelen
ah zie hem hier al anders reageren ja.

klopt het dat hij file/dirs met spaties als aparte items gaat zien?

  • GoVegan
  • Registratie: Juni 2002
  • Laatst online: 04-02 19:03
jeroene schreef op woensdag 14 december 2005 @ 13:52:
[...]

Eea heeft te maken met de double qoutes. Die zijn niet nodig en reageren blijkbaar niet zoals je denkt.

Een simpele
code:
1
for FILE in /var/downloads/usenet/*/
werkt prima. Het resultaat van beide scipts is niet veel anders (ja, er wordt iets anders geprint) omdat de test in beide scripts hetzelfde zijn.

De double quotes zorgen ervoor dat de lijst wel geexpand wordt, maar vervolgens als 1 geheel in de $FILE wordt gezet.
Edit: voor de TS: Je website is wel grappig, maar spuugt regelmatig waarschuwingen:
Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
Tja met die quots enzo, merk wel dat het allemaal net ff anders werkt en reageerd dan in php. maar toch leuk om dit te doen :)

trouwens welke pagina bedoelde je?

  • GoVegan
  • Registratie: Juni 2002
  • Laatst online: 04-02 19:03
mijn probleem is opgelost met behulp van de reacties hierboven, van mij magtie dicht.


tenzij iemand nog graag een goede tutorial link wil posten want de quotjes en variable werken voor mij toch allemaal net ff wat anders dan in php..

Verwijderd

je sql lust geen ' :)

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
GoVegan schreef op woensdag 14 december 2005 @ 20:56:
mijn probleem is opgelost met behulp van de reacties hierboven, van mij magtie dicht.
Topics gaan niet dicht als ze een oplossing hebben volgens de topicstarter, ze gaan dicht als ze niet (meer) aan de policy voldoen :)
Na zo'n 250 posts kan dat haast wel opgevallen zijn toch :)
Pagina: 1