bash programming vraagje.

Pagina: 1
Acties:

  • klbob
  • Registratie: Juli 2000
  • Laatst online: 01-07 15:14
wat betekend de & in dit verhaal :?
ik kan het nergens terug vinden.
en waar om is het bij compileren && ipv & (make && make install)

3.4 Sample: stdout 2 stderr
This will cause the stderr ouput of a program to be written to the same filedescriptor than stdout.

grep da * 1>&2


Here, the stdout portion of the command is sent to stderr, you may notice that in differen ways.

Verwijderd

Nu haal je twee dingen door elkaar....

&& betekent AND

Dus, make && make install

betekent eigenlijk: make AND make install

De logische && zorgt er voor dat make install alleen wordt uitgevoerd wanneer make met succes af wordt gerond... (exit code 0 dus).

Het tweede stukje:

grep da * 1>&2

Dit zorgt er voor dat de standaard error-output gestuurd wordt naar de zelfde file-descriptor als de standaard-output.

Misschien moet je dit eens lezen:

http://www-h.eng.cam.ac.uk/help/tpl/unix/scripts/node6.html

Suc6!

  • Wirf
  • Registratie: April 2000
  • Laatst online: 13-08 20:33
en een enkele & betekent "Voer dit programma in de achtergrond uit"

dus als je mozilla opstart, maar je wil nog wel die terminal blijven gebruiken, dan doe je mozilla&

Heeft sinds kort zijn wachtwoord weer terug gevonden!


  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Op woensdag 05 juni 2002 09:54 schreef klbob_ het volgende:
wat betekend de & in dit verhaal :?
ik kan het nergens terug vinden.
en waar om is het bij compileren && ipv & (make && make install)
& dient om een programma in de achtergrond uit te voeren.

&& dient om 2 commando's te koppelen aan elkaar,
je kan ook wel ; gebruiken geloof ik

dus:
make;make install

of ben ik mis :?

Verwijderd

Op woensdag 05 juni 2002 11:50 schreef -FoX- het volgende:

[..]

& dient om een programma in de achtergrond uit te voeren.

&& dient om 2 commando's te koppelen aan elkaar,
je kan ook wel ; gebruiken geloof ik

dus:
make;make install

of ben ik mis :?
ja hier zit je idd fout... de ; zorgt er in bijvoorbeeld 'make ; make install' voor dat make EN make install beiden uitgevoerd worden, wat er ook gebeurd. het maakt dan niet uit of make goed afrond of niet, make install wordt gewoon uitgevoerd...

zet je ipv de ; echter && neer dan wordt make install alleen uitgevoerd als make ook goed is gegaan (exit code 0)

  • klbob
  • Registratie: Juli 2000
  • Laatst online: 01-07 15:14
kan dit dan?

#!/bin/sh
for i in `seq 0011 2000`;
do
mv /var/opt/openmail/tmp/*$i /u02/openmail_temp && mv *.log /u02/openmail_temp
done

verplaats alles wat eindig tussen 11 en 2000 naar dir en daarna verplaats alles wat eindig op .log naar dezelfde dir.

  • Wirf
  • Registratie: April 2000
  • Laatst online: 13-08 20:33
Op woensdag 05 juni 2002 12:35 schreef klbob_ het volgende:
kan dit dan?

#!/bin/sh
for i in `seq 0011 2000`;
do
mv /var/opt/openmail/tmp/*$i /u02/openmail_temp && mv *.log /u02/openmail_temp
done

verplaats alles wat eindig tussen 11 en 2000 naar dir en daarna verplaats alles wat eindig op .log naar dezelfde dir.
beter zo:
code:
1
2
3
4
5
6
#!/bin/sh
for i in `seq 0011 2000`;
do
      mv /var/opt/openmail/tmp/*$i /u02/openmail_temp
done
mv *.log /u02/openmail_temp

anders probeer je 1989 keer *.log naar /u02/openmail_temp/ te kopieeren, en das wel een beetje vaak ;)

Heeft sinds kort zijn wachtwoord weer terug gevonden!


  • klbob
  • Registratie: Juli 2000
  • Laatst online: 01-07 15:14
dank je :)
Pagina: 1