Что делать, если я хочу вывести каждую команду из sh-файла в файл журнала, а также на консоль?

Что делать, если я хочу вывести каждую команду из sh-файла в файл журнала, а также на консоль?

Что делать, если я хочу вывести каждую команду из sh-файла в файл журнала, а также на консоль?

скажем, сейчас у меня есть ниже, я хочу однострочную команду (вродеПечать в файл,который выведет все выходные данные команд в файл ) который может вывести все выходные данные своих предыдущих команд /echos в файл и консоль #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 

решение1

Есть два подхода. Другие упоминали tee. Второй подход — это команда "script" и ее варианты, которые записывают все, что отправляется в stdout процессов. Если вы хотите перенаправление в скрипте, то используйте

#!/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

решение2

попробуй это...

#!/bin/bash

log_file=/tmp/log.txt

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

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

решение3

Вы можете использовать teeкоманду для перенаправления вывода вашего скрипта в стандартный вывод и файл.

Следующая команда выведет содержимое файла f1.txt в файл f2.txt, а также на стандартный вывод (консоль).

cat f1.txt | tee f2.txt

Для получения дополнительной информации о проверке тройникатройник manpage

решение4

Есть scriptпрограмма, которая записывает сеанс терминала, т. е. регистрирует все, что отображается на терминале.

Связанный контент