E se eu quiser imprimir todos os comandos do arquivo sh no arquivo de log e também no console.
digamos que por enquanto tenho abaixo, quero um comando de linha única (comoImprimir para arquivo, que imprimirá todas as saídas de comandos em arquivo) que pode imprimir todas as saídas de comandos anteriores /echos em 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
Responder1
Existem duas abordagens. Outros mencionaram tee. A segunda abordagem é o comando “script” e suas variantes que registram tudo enviado para o stdout dos processos. Se você deseja 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
Responder2
tente isso...
#!/bin/bash
log_file=/tmp/log.txt
function log(){
echo "$@" | tee -a "${log_file}"
}
log "test"
log "hello"
log "testing...."
Responder3
Você pode usar tee
o comando para redirecionar a saída do seu script para stdout e arquivo.
O comando a seguir 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 sobre tee checkpágina de manual
Responder4
Existe script
um programa que digita uma sessão de terminal, ou seja, registra tudo o que é exibido no terminal.