Nee hoor want dat 2e gedeelte is tekst en geen regexp.quote:Op woensdag 18 juli 2007 16:35 schreef wdn het volgende:
Ik denk dat de code van Farenji voor de laatste punt nog een backslah moet hebben
okquote:Op woensdag 18 juli 2007 16:39 schreef Farenji het volgende:
[..]
Nee hoor want dat 2e gedeelte is tekst en geen regexp.
1 |
ja die doet het nu ook wel, allen nu loop ik tegen tekortkoming php+lunix aan...quote:
Met rename kun je command line perl gebruiken, en perl is misschien een bitch maar wel een erg lekkere.quote:Op woensdag 18 juli 2007 18:01 schreef whoops het volgende:
Veel files in een keer renamen is een bitch onder linux...
Bouw gewoon je eigen FTP class ipv de PHP functiesquote:Op woensdag 18 juli 2007 18:28 schreef mschol het volgende:
[..]
ja die doet het nu ook wel, allen nu loop ik tegen tekortkoming php+lunix aan...
het commando http://nl3.php.net/manual/en/function.ftp-nlist.php
geeft onder windows netjes een lijst met bestandsnamen van de huidige directory..
onder linux geeft hij het volledige pad weer...
Idd net als bash, tricky in het begin maar naar mate je ze beter leert kennen mag je veel meer .quote:Op woensdag 18 juli 2007 19:53 schreef Farenji het volgende:
[..]
Met rename kun je command line perl gebruiken, en perl is misschien een bitch maar wel een erg lekkere.
ben geen eigen class schrijver...quote:Op woensdag 18 juli 2007 20:25 schreef WyriHaximus het volgende:
[..]
Bouw gewoon je eigen FTP class ipv de PHP functies
[..]
Idd net als bash, tricky in het begin maar naar mate je ze beter leert kennen mag je veel meer .
Ah deze zocht ik .quote:Op woensdag 18 juli 2007 20:40 schreef mschol het volgende:
[..]
ben geen eigen class schrijver...
moet gewoon kunnen met ingebouwde functies
de functie basename in php bood voor mij de oplossingquote:Op donderdag 19 juli 2007 11:56 schreef WyriHaximus het volgende:
[..]
Ah deze zocht ik .
Ik wel, vooral als ik niks kan vinden wat aan me eisen voldoet . Vind ik altijd leuk om het uit te gaan zoeken . HTTP en FTP heb ik mezelf met packedsniffer geleerd, net als SMTP .
1 2 3 4 | j=`echo $i | sed -e s/.bak$//` mv $i $j done |
1 2 3 | var2=value2 varN=valueN |
1 2 3 4 5 6 7 | if [ -z ${$een_var} ] ; then # error, bestaat niet exit 2 fi # En we gaan verder.. |
Volgens mij moet je gewoon $een_var i.p.v. ${$een_var} aanroepen:quote:Op vrijdag 20 juli 2007 22:26 schreef slakkie het volgende:
Ik heb een vraag over sh (let op, geen bash!).
Een config wat variabelen.
[ code verwijderd ]
Deze config wordt gesourced vanuit een script en het is de bedoeling dat je alleen kan kiezen uit de variabelen var1, var2, varN
Ik heb hetvolgende geprobeerd:
[ code verwijderd ]
Echter ik krijg onder sh een "bad substition" error. Onder zsh heb ik hetzelfde geprobeerd maar ik krijg dan dezelfde error.
What to do?
1 2 3 4 5 6 7 | if [ -z $$een_var ] ; then # error, bestaat niet exit 2 fi # En we gaan verder.. |
De klassieke truc om zoiets te doen is m.b.v. eval, dit start als het ware een extra shell-laag, die commando's evalueert. Het wordt ook gebruikt om arrays te simuleren in sh, zie b.v. deze uitleg van Apple.quote:Op zaterdag 21 juli 2007 08:38 schreef slakkie het volgende:
Dat werkt niet aangezien $$ een special variable is, namelijk je pid, dus de -z passed op 12345een_var. Vandaar dat ik de ${$een_var} heb geprobeerd.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | var2='val2' var3='val3' een_var=$1 eval mijn_var='$'$een_var if [ -z "$mijn_var" ] ; then # error, bestaat niet echo 'error' exit 2 else echo 'jouw var bevat waarde' $mijn_var fi |
Deze oplossing had ik vanochtend ook gevonden. Alleen is het redelijk tricky aangezien je ook ongewild commando's kan injecten met de userinput en dan wordt je script plots levensgevaarlijk... Dan moet ik eerst die sanitizen en dan kan ik denk ik beter even bash gaan gebruiken zodat ik het met een array kan oplossen.quote:Op zaterdag 21 juli 2007 17:05 schreef Iblis het volgende:
Ik heb nu b.v. dit script:
[ code verwijderd ]
Je kunt het uitvoeren met sh script.sh <argument>, b.v. script.sh var1, en dan zal het 'val1' printen, als je script.sh var5 doet, geeft het een error.
De truc zit in de regel 'eval mijn_var='$'$een_var', eerst wordt die regel door je huidige shell geëxpandeerd, die de '$' unquote, en $een_var vervangt door de waarde hiervan (zeg 'var2', en dan krijg je feitelijk mijn_var=$var2, en deze regel krijgt eval mee, en die functie evalueert een string als was het een shell commando. Zo kun je dus commando's samenstellen. Eval evalueert nu dus mijn_var=$var2, en dan krijg je mijn_var de goede waarde.
1 2 3 4 5 6 7 | #FOO=BAR FOO="(echo rm -rf /)" BAR=barmaid eval FOO='$'$FOO |
1 2 3 4 | echo "wrong input" > /dev/stderr exit 2 fi; |
1 2 | 6d0bbbd6bb5ce70be09a63a1f4a96ac9 - |
1 |
Dit verklaart het 1 en ander:quote:Op dinsdag 24 juli 2007 01:56 schreef whoops het volgende:
Ik probeer vanuit bash een md5 digest van een string te genereren. Ik dacht dat volgende wel zou werken:
[ code verwijderd ]
maar als ik deze string met PHP's md5 genereer is de output heel anders, namelijk:
[ code verwijderd ]
de output van md5sum is dus niet wat ik verwacht.
Wat mis ik?
Uiteindelijk ben ik voor deze oplossing gegaan. Werkt vlekkeloos, thnx voor het meedenkenquote:Op zaterdag 21 juli 2007 23:31 schreef Iblis het volgende:
Als de variabelen de naam varX hebben, dan is 't niet zo moeilijk om te checken op valid input, want dan kun je simpelweg iets doen als:
[ code verwijderd ]
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |