Shell script uitvoeren en complete uitvoer laten zien

Pagina: 1
Acties:

  • Deikke
  • Registratie: Juni 2004
  • Laatst online: 17:01
Hoi, ik probeer een manier te vinden dat ik een script kan uitvoeren en dan de volledige uitvoer wat ik op de console zou zien als ik het zou typen, terug krijgen. Dus bijvoorbeeld:

user@localhost:/tmp$ date
Wed Mar 25 17:16:55 CET 2009

Als ik nu een script uitvoer, dan verschijnt alleen de regel: Wed Mar 25 17:16:55 CET 2009

Weet iemand of dit mogelijk is?

  • sariel
  • Registratie: Mei 2004
  • Laatst online: 07-12-2025
Ik snap niet wat je bedoelt. Je krijgt toch alle uitvoer terug? De enige output die date geeft is wat je daar ziet.

Copy.com


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • zomertje
  • Registratie: Januari 2000
  • Laatst online: 22-01 20:37

zomertje

Barisax knorretje

Ik vraag me inderdaad af wat je wil.
Maar ik vermoed dat je op zoek bent naar het commando 'echo' om je eigen commando ook terug te zien :)

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


  • Deikke
  • Registratie: Juni 2004
  • Laatst online: 17:01
sariel schreef op woensdag 25 maart 2009 @ 17:20:
Ik snap niet wat je bedoelt. Je krijgt toch alle uitvoer terug? De enige output die date geeft is wat je daar ziet.
Nee, ik wil dat als ik dit script uitvoer dat ik ook kan zien wat de commando's waren die ik uitgevoerd heb, zeg maar een printout van wat ik zou zien als ik de commando's zelf had ingetypt.

Mischien het beste omschreven: Ik wil een script die een shell opent en daar een aantal commando's automatisch op uitvoerd.

Dit script wil ik met PHP uitvoeren en dan de resultaten daarvan (dus de complete shell interactie) naar de browser sturen.

[ Voor 11% gewijzigd door Deikke op 25-03-2009 17:29 ]


  • Wirf
  • Registratie: April 2000
  • Laatst online: 15:32
code:
1
2
3
4
5
6
7
8
9
#!/bin/bash

function doStuf() {
        echo "$*"
        $*
}

doStuf date
doStuf echo "hoi"


uitvoer:

code:
1
2
3
4
date
Wed Mar 25 17:32:31 CET 2009
echo hoi
hoi

Heeft sinds kort zijn wachtwoord weer terug gevonden!


  • QuaQu
  • Registratie: Oktober 2002
  • Laatst online: 18-08-2021
Volgens mij bedoelt hij wat met een dos-batch met "echo on" gebeurde. Er vanuit gaande dat je dan iets met bash wil gaan doen, vond ik dit topic:
echo on onder bash?
dus in een script:
#!/bin/bash -x

of in een bestaande shell
$ set -x

[ Voor 6% gewijzigd door QuaQu op 25-03-2009 17:38 ]

"Ik heb een boel geld uitgegeven aan drank, vrouwen en snelle auto's. De rest heb ik over de balk gesmeten." - George Best


Verwijderd

Goede vraag :) Dit krijg je voor elkaar door de -x of de -v optie op te nemen in de eerste regel van je shell script. Dus zo:

code:
1
2
3
4
5
#!/bin/sh -x

of 

#!/bin/sh -v

  • gertvdijk
  • Registratie: November 2003
  • Laatst online: 19:15
.

[ Voor 99% gewijzigd door gertvdijk op 25-03-2009 17:42 . Reden: lama ]

Kia e-Niro 2021 64kWh DynamicPlusLine. 3x Victron MP-II op 15kWh US5000 3f thuisbatterij met 3x25A→3x40A PowerAssist, Victron EVCS, 3200Wp HoyMiles zp. my GitHub, my blog


Verwijderd

code:
1
2
3
4
5
6
7
8
9
user@localhost:/tmp$ date
Wed Mar 25 17:16:55 CET 2009
user@localhost:/tmp$ set -x
++ echo -ne '\033]0:user@localhost:/tmp\007'
user@localhost:/tmp$ date
+ date
Wed Mar 25 17:16:55 CET 2009
++ echo -ne '\033]0:user@localhost:/tmp\007'
user@localhost:/tmp$


Zoiets?
B.t.w.; bij gebruik in scripts moet je de set -x binnen iedere functie apart opgeven om ook de commando's binnen de functie te zien.

  • Deikke
  • Registratie: Juni 2004
  • Laatst online: 17:01
Geweldig, nu probeer ik alleen nog de uitvoer naar een file te sturen, helaas zie ik dan alleen de uitvoer van het laatste commando in die file belanden, en de rest gewoon op de console geprint:

code:
1
2
3
4
5
6
#!/bin/bash

date

# Comment
date


./script > test.txt
#!/bin/bash -v
date

#2 comment
date

cat test.txt
Wed Mar 25 18:40:29 CET 2009
Wed Mar 25 18:40:29 CET 2009

Edit: nvm, bash schijnt het naar stderr te sturen om niet verklaarbare reden. ./script > test.txt 2>&1 werkt zoals verwacht.

[ Voor 14% gewijzigd door Deikke op 25-03-2009 18:50 ]


  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

Probeer eens het standaard linux commando "script" ;)

ASSUME makes an ASS out of U and ME

Pagina: 1