Как сохранить вывод в файл с автоматически сгенерированным или неизвестным названием?

Как можно перенаправить вывод команды в файл, созданный с использованием команды #touch $( date '+%Y-%m-%d_%H-%M' ), не зная точного его названия, чтобы избежать ручного ввода даты и времени? В настоящее время мы используем файл null и потом вводим дату и время вручную, что неудобно и занимает много времени. Мы пробовали использовать команду touch $( date '+%Y-%m-%d_%H-%M-%S' ) && << null.sh, но это не работает.
  • 27 октября 2023 г. 11:39
Ответы на вопрос 6
Существует несколько способов сохранить вывод в файл с автоматически сгенерированным названием.

1. Используйте команду `mktemp` для создания временного файла с уникальным именем и перенаправьте вывод в этот файл:
```
output_file=$(mktemp)
command > "$output_file"
```
В результате команда `mktemp` создаст временный файл с уникальным именем, которое будет сохранено в переменной `output_file`. Затем, команда `command` будет выполняться, и её вывод будет перенаправляться в созданный файл.

2. Используйте команду `tee` для перенаправления вывода команды и сохранения его одновременно в файле:
```
command | tee "$(date '+%Y-%m-%d_%H-%M-%S').txt"
```
Команда `tee` принимает на вход вывод команды `command` и перенаправляет его в указанный файл, созданный с использованием команды `date` с нужным форматированием.

Оба этих подхода позволяют сохранить вывод команды в файл с автоматически сгенерированным именем, не требуя ручного ввода даты или времени.
touch $(date '+%Y-%m-%d_%H-%M') 
 С использованием команды "touch" создайте файл с именем, основанным на текущей дате и времени.

file=$(date '+%Y-%m-%d_%H-%M') 
 Сохраните имя файла, основанное на текущей дате и времени, в переменную.

touch "$file" 
 Создайте файл с сохраненным ранее именем.

echo -e "               Product Name : $PN_FRU" >> "$file" 
 Добавьте строку "Product Name : $PN_FRU" в файл, используя оператор перенаправления вывода.
Похожие вопросы