[BASH] redirect naar file

Pagina: 1
Acties:

  • Booster
  • Registratie: Februari 2000
  • Laatst online: 03-05 10:49

Booster

Superuser

Topicstarter
Ik heb een script geschreven dat een bestand moet gaan samenstellen uit ingevoerde variabelen.

bv
code:
1
2
3
4
5
6
7
8
#!/bin/bash
read FOO
read COMMANDO

echo "#!/bin/bash"
echo "# je blaatte $FOO" >> testfile
echo "$COMMANDO" >> testfile
echo "# end" >> testfile


Nou begrijp je dat dit ">> testfile" bij veel entries nogal onoverzichtelijk wordt.

Is er een nette manier om dit op te lossen? Een redirect die ik neer kan zetten vantevoren en naderhand weer kan intrekken?

The cake is a lie | The Borealis awaits...


Verwijderd

code:
1
2
3
4
5
#!/bin/bash
echo "#!/bin/bash"
echo "# je blaatte $1"
echo "$2"
echo "# end"


code:
1
[user@host path]$ ./script.sh FOO COMMAND > testfile


werkt dit niet?

[ Voor 13% gewijzigd door Verwijderd op 25-04-2003 14:31 ]


  • _Squatt_
  • Registratie: Oktober 2000
  • Niet online
En als je het per se in je script zelf wil doen:
code:
1
2
3
#!/bin/bash
# redirect stdout and stderr to testfile:
exec > testfile 2>&1

De '2>&1' is alleen nodig als je stderr ook naar testfile wilt hebben.

"He took a duck in the face at two hundred and fifty knots."


  • Booster
  • Registratie: Februari 2000
  • Laatst online: 03-05 10:49

Booster

Superuser

Topicstarter
Dat werkt, maar is in dit geval niet wenselijk :)
Het programma poept ook nog andere output uit die niet in de file moet komen, daarom ligt het wat lastig.
_Squatt_ schreef op 25 April 2003 @ 14:37:
En als je het per se in je script zelf wil doen:
code:
1
2
3
#!/bin/bash
# redirect stdout and stderr to testfile:
exec > testfile 2>&1

De '2>&1' is alleen nodig als je stderr ook naar testfile wilt hebben.
Ahh exec! I should have known. Zo kom ik er wel uit, bedankt :)

[ Voor 5% gewijzigd door Booster op 25-04-2003 14:43 ]

The cake is a lie | The Borealis awaits...


  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 02-05 18:38

deadinspace

The what goes where now?

code:
1
2
3
4
5
6
7
8
#! /bin/sh

echo tekst
(
  echo tekst
  echo tekst
) > /path/to/file
echo tekst

Zo kan het ook, imho handiger en netter :)

  • Booster
  • Registratie: Februari 2000
  • Laatst online: 03-05 10:49

Booster

Superuser

Topicstarter
mh ziet er ook goed uit, en ietsje makkelijker te begrijpen (indien andere het script moeten bekijken)

Ik zal beide uitproberen :) Thanks.

The cake is a lie | The Borealis awaits...

Pagina: 1