Ce se întâmplă dacă vreau să tipăresc fiecare comandă din fișierul sh în fișierul jurnal, precum și în consolă? (Unix, Bash, Script Shell, Shell)

kishore jetty a intrebat.

Ce se întâmplă dacă vreau să tipăresc fiecare comandă din fișierul sh în fișierul jurnal, precum și în consolă.

să zicem că pentru moment am mai jos , vreau o singură comandă de linie (cum ar fi PrintToFile care va imprima toate comenzile în fișier) care poate imprima toate comenzile precedente în fișier și în consolă #sh

SH
**some command here, so it will print all below echos to file and console** 

echo start
echo "My first name is $1"
echo "My surname is $2"
echo "Total number of arguments is $#" 
echo end 

4 răspunsuri
icarus

Există două abordări. Alții au menționat tee. A doua abordare este comanda „script” și variantele sale care înregistrează tot ce este trimis la stdout al proceselor. Dacă doriți redirecționarea într-un script, atunci folosiți

#!/bin/bash
{
echo start
echo "My first name is $1"
echo "My surname is $2"
echo "Total number of arguments is $#"
echo end
} | tee logfile

Kamaraj

încercați acest lucru…

#!/bin/bash

log_file=/tmp/log.txt

function log(){
echo "[email protected]" | tee -a "${log_file}"
}

log "test"
log "hello"
log "testing...."

Trishansh Bhardwaj

Puteți folosi tee comanda pentru a redirecționa ieșirea din scriptul dvs. în stdout și în fișier.

Următoarea comandă va imprima conținutul fișierului f1.txt în fișierul f2.txt, precum și în stdout (consolă).

cat f1.txt | tee f2.txt

Pentru mai multe informații despre tee, consultați pagina de manual tee

user236012

Există script, un program care tipărește o sesiune de terminal, adică înregistrează tot ceea ce este afișat pe terminal.