Перенаправьте grep вывод ошибок в файл

Поддержание вашего пакета расширений в актуальном состоянии с помощью интерфейса командной строки.

Я предполагаю, что у вас всегда установлена ​​последняя версия VBox (Oracle предоставляет репозитории для Ubuntu, Debian, OpnenSUSE, SLES, Fedora и Oracle Linux).

Получите номер версии последней версии:

vboxversion=$(wget -qO - https://download.virtualbox.org/virtualbox/LATEST.TXT)

wget -qO - сохраняет wget в тайне и извлекает содержимое этого файла в stdout , где он может быть сохраненным в переменной.

Загрузите последний пакет расширений

wget "https://download.virtualbox.org/virtualbox/${vboxversion}/Oracle_VM_VirtualBox_Extension_Pack-${vboxversion}.vbox-extpack"

Установите его (даже если более старая версия уже существует)

sudo vboxmanage extpack install --replace Oracle_VM_VirtualBox_Extension_Pack-${vboxversion}.vbox-extpack
1
01.03.2014, 07:02
2 ответа

Если я правильно понимаю, вы хотите записать вывод grep в переменную и добавить любую ошибку в файл журнала.

Можно сказать:

var1=$(grep $lookUpVal foo.lookup 2>>lookup.log)

Синтаксис $ (...) обозначает подстановку команды, т.е. выводит результат команды в переменную. По умолчанию он записывает STDOUT команды в переменную, а STDERR выводится на консоль. Чтобы перенаправить STDERR в файл, вам необходимо выполнить перенаправление внутри самой команды, то есть в пределах $ (...) .

1
27.01.2020, 23:28

grep foo.lookup не является корректным примером. В нем отсутствует аргумент, либо параметр поиска, либо имя файла.

Чтобы записать только сообщения об ошибках, которые grep возвращает в файл, можно сделать следующее:

$ grep $lookUpVal foo.lookup 2> errors.log

Все ошибки отправляются в STDERR (2>), а весь вывод - в STDOUT (1>). Они объединены следующим образом:

$ grep $lookUpVal foo.lookup > output.log 2>&1
2
27.01.2020, 23:28

Теги

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