Вход вывода сценария в файл

Я записал простой сценарий для контроля моих часов gpu и временных файлов. Я хотел это к кроме того, чтобы быть видимым на терминале, зарегистрируйте его вывод во внешний файл. Как я мог достигнуть этого? Мой сценарий ниже, для ссылки:

#!/bin/bash

watch -n 1 "amdconfig --odgc" "amdconfig --odgt"

Вопросом не является дубликат, потому что я использую команду "часов".

4
задан 29 January 2016 в 18:32

2 ответа

Вы действительно не хотите делать это. watch разработан, чтобы быть, гм, смотрел . Его вывод отформатирован таким способом как для создания перенаправления его непрактичным. В то время как можно на самом деле сделать это с помощью чего-то как tee, вывод будет многими пустыми строками и очень небольшой полезной информацией.

Так, в конкретном случае watch, Вы - более обеспеченная запись Вашего собственного небольшого сценария, который делает то же самое:

#!/bin/bash

## This is an infinite loop, the script will run until you kill it
while :; do
  ## Run the command whose output you want to monitor
  amdconfig --odgc" "amdconfig --odgt

  ## Wait for 2 seconds. This mimics what the watch command does
  ## and also avoids spamming your cpu. 
  sleep 2
done

Сохраняют тот сценарий как ~/bin/amdwatch или независимо от того, что Вам нравится, сделайте его исполняемым файлом (chmod +x ~/bin/amdwatch) и затем перенаправьте его вывод в файл:

~/bin/amdwatch > amdwatch.log 

, Который запустит скрипт, пока Вы не остановите его вручную и выполнитесь эти amdwatch команда каждые две секунды, сохраняя ее вывод к amdwatch.log.

Для большинства сценариев, что Вы ищете, script.sh > outputFile.txt или script.sh >> outputFile.txt. См. , Как я сохраняю терминальный вывод в файл? .

4
ответ дан 1 December 2019 в 09:22

watch по умолчанию очистит экран каждый раз, когда он печатает к stdout. Таким образом, я предложил бы, чтобы Вы использовали while loop с задержкой. Затем Вы могли использовать script команда или tee для входа вывода. Например,

while [ 1 ]; do df ; sleep 0.25; done | tee -a MY_FILE

Это и будет отображено на экране и перейдет к файлу, добавляя каждое выполнение команды

2
ответ дан 1 December 2019 в 09:22

Другие вопросы по тегам:

Похожие вопросы: