Как вы уже выяснили, вам понадобился пакет libcheese-gtk-dev. В будущем вы можете сэкономить себе головную боль при сопоставлении pkg-config с пакетами Ubuntu с помощью sudo apt-get build-dep ubiquity. Это установит все зависимости сборки для пакета.
Чтобы записать вывод команды в файл, в основном используются 10 обычных способов.
|| visible in terminal || visible in file || existing
Syntax || StdOut | StdErr || StdOut | StdErr || file
==========++==========+==========++==========+==========++===========
> || no | yes || yes | no || overwrite
>> || no | yes || yes | no || append
|| | || | ||
2> || yes | no || no | yes || overwrite
2>> || yes | no || no | yes || append
|| | || | ||
&> || no | no || yes | yes || overwrite
&>> || no | no || yes | yes || append
|| | || | ||
| tee || yes | yes || yes | no || overwrite
| tee -a || yes | yes || yes | no || append
|| | || | ||
n.e. (*) || yes | yes || no | yes || overwrite
n.e. (*) || yes | yes || no | yes || append
|| | || | ||
|& tee || yes | yes || yes | yes || overwrite
|& tee -a || yes | yes || yes | yes || append
Вы также можете использовать tee для отправки вывода в файл:
command | tee ~/outputfile.txt
Небольшая модификация также будет захватывать stderr:
command 2>&1 | tee ~/outputfile.txt
или немного короче и менее сложно:
command |& tee ~/outputfile.txt
tee полезна, если вы хотите иметь возможность захвата вывода команды, а также просмотр ее вживую.
Вы можете перенаправить вывод команды в файл:
your_command >/path/to/file
Чтобы добавить вывод команды в файл вместо ее записи, используйте:
your_command >>/path/to/file
Усовершенствование для рассмотрения -
Различные сценарии будут вводить цветовые коды в выходной файл, который вам может не понадобиться загромождать ваш файл журнала.
Чтобы исправить это, вы можете использовать программы sed, чтобы вырезать эти коды. Пример:
command 2>&1 | sed -r 's/'$(echo -e "\033")'\[[0-9]{1,2}(;([0-9]{1,2})?)?[mK]//g' | tee ~/outputfile.txt
Для заданий cron и т. д. вы хотите избежать расширений Bash. Эквивалентные операторы перенаправления POSIX sh:
Bash POSIX
-------------- --------------
foo &> bar foo >bar 2&>1
foo &>> bar foo >>bar 2>&1
foo |& bar foo 2>&1 | bar
Вы заметите, что объект POSIX в некотором смысле более простой и понятный. Синтаксис &> был заимствован из csh, который должен уже убедить вас, что это плохая идея.