commande pour enregistrer le terminal ne fonctionne pas avec bash

Je voudrais utiliser la commande “script”, j’ai le code suivant

#!/bin/bash script & wait echo "hello" echo "hello2" pid=$(pidof script | awk '{print $1}') kill -9 $pid 

J’ai besoin de la commande script pour capturer la sortie, mais après la commande “script &”, la sortie est la suivante:

  Script started, file is typescript Script done, file is typescript 

et le script n’enregistre rien, aucune idée de pourquoi?

Voici comment vous devriez le faire:

 script   

Exemple:

 script typescript bash -c 'echo "hello"; echo "hello2"' Script started, output file is typescript hello hello2 Script done, output file is typescript 

Ensuite, vérifiez le fichier de sortie créé:

 cat typescript Script started on Sat Dec 19 01:54:04 2015 hello hello2 Script done on Sat Dec 19 01:54:04 2015 

Vous pouvez utiliser la commande de script deux manières:

  • Enregistrer uniquement les sorties de votre code (c.-à-d. Mode batch)

     $ script filename bash -c 'echo foo; echo bar' 

    qui va sortir

     Script started, file is filename foo bar Script done, file is filename 
  • Sauvegardez tout ce qui est affiché sur votre terminal (mode interactif). Pour mettre fin au script, tapez simplement exit ou appuyez sur Ctrl-D

     $ script filename Script started, file is filename $ echo foo foo $ echo bar bar $ exit exit Script done, file is filename 

Notez que le mode batch est un hack sur la manière classique et interactive d’utiliser le script .

Dans votre cas, oubliez simplement les éléments & et kill et appuyez sur Ctrl-D lorsque vous voulez que le script se termine.