Не удается выполнить sudo с Debian 10

result is true. But I don't understand why since bash will translate $anything to an empty string, shouldn't this will result in syntax error ?

Близко, но нет печенья. Есть выражение:$anything. if ; thenявляется ошибкой, потому что bash не может проанализировать его (, следовательно,:синтаксис ошибка ). Он ожидает там список команд и вместо этого получает ;. Синтаксический анализ происходит задолго до расширения переменных, поэтому if $anything; thenанализируется нормально. Что произойдет дальше? $anythingрасширяется, выполняется разделение полей и т. д. Это оставляет пустой список команд, что тривиально верно. Сравните:

if "$anything"; then echo foo; fi
if $anything; then echo foo; fi

"$anything";не является пустым списком команд, у него есть команда, которая происходит с пустой строкой, так же, как и с if '';. Но "$anything"без кавычек превращается в ничто.

То же самое было бы верно, если бы $anythingсодержал только пробельные символы, присутствующие в IFS,или содержал разделенный$IFS-список глобусов, которые не соответствовали ни одному файлу, и была включена опция nullglob.

1
19.08.2019, 03:28
1 ответ

Как пользователь root, я создал файл

vi /etc/sudoers.d/peter

и добавлено

peter    ALL=(ALL:ALL) ALL

Теперь я могу использовать sudo из учетной записи Peter.

0
28.01.2020, 00:03

Теги

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