E se eu quiser imprimir todos os comandos do arquivo sh no arquivo de log, bem como no console?

2

E se eu quiser imprimir todos os comandos no arquivo sh para o arquivo de log, bem como para o console.

diga por enquanto eu tenho abaixo, eu quero o comando single liner (como PrintToFile , que imprimirá todos os comandos de saída para o arquivo) que pode imprimir todos os seus comandos / ecos precedentes para arquivo e console # 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 
    
por kishore jetty 28.10.2016 / 08:15

4 respostas

2

Existem duas abordagens. Outros mencionaram tee. A segunda abordagem é o comando "script" e suas variantes, que registram tudo que é enviado ao stdout dos processos. Se você quiser o redirecionamento em um script, use

#!/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
    
por 28.10.2016 / 08:39
1

tente isso ...

#!/bin/bash

log_file=/tmp/log.txt

function log(){
echo "$@" | tee -a "${log_file}"
}

log "test"
log "hello"
log "testing...."
    
por 28.10.2016 / 08:18
0

Você pode usar o comando tee para redirecionar a saída do seu script para o stdout e o arquivo.

O comando a seguir irá imprimir o conteúdo do arquivo f1.txt no arquivo f2.txt, bem como no stdout (console).

cat f1.txt | tee f2.txt

Para mais informações, consulte a página de manual do tee

    
por 28.10.2016 / 08:22
0

script , um programa que faz a digitação de uma sessão de terminal, ou seja, registra tudo o que é exibido no terminal.

    
por 28.10.2016 / 13:12