переменная среды в строке искажает вывод времени

Para una lista negra, en su sshd_configagregue la entrada DenyUsersseguida de una lista de usuarios separados por un espacio. También puede usar DenyGroupsde manera similar.

Por ejemplo :DenyUsers jimmy bill joe susan

o

DenyGroups teachers

Se crea una lista blanca usando las entradas AllowUsersy/o AllowGroupsen el archivo sshd_config. Si se utiliza alguna de estas entradas, solo los usuarios o grupos enumerados podrán iniciar sesión.

0
27.06.2019, 11:42
2 ответа

Когда вы использовали форму ENV=val, вы запускали команду, отличную от команды bash time, созданной -в (, вы запускали программу времени GNU из/usr/bin/time).

Если вы хотите использовать встроенную -оболочку, используйте ее следующим образом:

$ time TESTVAR=TEST echo 1
1

real    0m0.000s
user    0m0.000s
sys     0m0.004s

$ time TESTVAR=TEST printenv TESTVAR
TEST

real    0m0.003s
user    0m0.004s
sys     0m0.000s
2
28.01.2020, 02:22

Это тесно связано с причиной недавнего вопроса:Почему группе команд скобок нужны пробелы после открывающей скобки в грамматике оболочки POSIX?

time, как и {, является зарезервированным словом, а зарезервированное слово не может появиться после присваивания переменной.

bash-5.0$ foo=bar { echo $foo; }
bash: syntax error near unexpected token `}'
bash-5.0$ foo=bar if true; then echo; fi
bash: syntax error near unexpected token `then'
bash-5.0$ foo=bar if true
bash: if: command not found

Поскольку timeне распознается как зарезервированное слово в TESTVAR=TEST time echo 1, оно подвергается обычному выполнению команды, поиску псевдонимов, функций и (в этом случае, что заканчивается выполнением внешней команды ).

1
28.01.2020, 02:22

Теги

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