Debian GNOME: отсутствуют настройки тачпада. Используйте libinput вместо synaptics

1) Я не уверен, что подоболочка (или фон) полезна здесь:

sudo sh -c '( tail -n1 -f /path/to/nameOfLog.log & ) | grep -q "Started .*Application"'

не должен ли простой канал?

sudo sh -c 'tail -n1 -f /path/to/nameOfLog.log | grep -q "Started .*Application"'

2) Ваша «попытка 1»:

sudo timeout 5 grep -q "Started .*Application" <(tail -n1 -f /path/to/nameOfLog.log &)

расширяет перенаправление ввода в командной строке, которая запускает sudo , а не внутри sudo . Дескриптор файла, который он открывает, не передается через sudo в grep , поэтому grep не может открыть / dev / fd / 63 псевдо-файл.

То же самое и с фоном хвоста здесь, в этом нет необходимости.


3) И, как phk прокомментировал , ваша «попытка 2»:

sudo sh -c 'timeout 5 grep -q "Started .*Application" <(tail -n1 -f /path/to/nameOfLog.log &)'

... явно запускает sh , а не bash или любой другой другая более функциональная оболочка. Обычный стандарт sh не поддерживает , как и тире , который используется как sh в Debian и Ubuntu.

Когда вы запускаете su , запускается оболочка входа в систему root , которая, скорее всего, будет bash в Ubuntu.Но использование sudo и su является избыточным, они оба предназначены для повышения привилегий, и после sudo вы уже используете повышенные привилегии , поэтому нет необходимости в su . Вместо этого, если вы хотите запустить оболочку внутри sudo , просто скажите явно, какой из них:

sudo bash -c 'timeout 5 grep -q "Started .*Application" <(tail -n1 -f /path/to/nameOfLog.log &)'

11
27.06.2016, 13:26
0 ответов

Теги

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