Я думаю, что у меня огромный мозговой перманент. Я бы ожидал
env foo=bar echo $foo
... для печати bar
, но вместо этого я получаю пустую строку. Wat.
То же самое происходит, если я использую синтаксис bash:
foo=bar echo $foo
Я думаю, что у меня огромный мозговой перманент. Я бы ожидал
env foo=bar echo $foo
... для печати bar
, но вместо этого я получаю пустую строку. Wat.
То же самое происходит, если я использую синтаксис bash:
foo=bar echo $foo
Аналогичный вопрос был дан ответ в последнее время : символы оцениваются в линии до того , как символ определен в этой линии, что делает необходимым разделить определение и использование символов в отдельных строках.
По комментарию вы могли бы сделать это:
foo=bar bash -c 'echo $foo'
который сначала присваивает значение foo
и передает его в новый процесс в качестве переменной среды, где оно может быть напечатано.
Вы можете прочитать больше об этом в POSIX Shell Command Language распознавание токенов .
В продолжение комментария @mikeserv :
Оболочка должна читать свои входные данные в виде строк из файла, из терминала в случае интерактивной оболочки или из строки в случае sh -c или system ().
Как только токен разграничен, он классифицируется в соответствии с требованиями грамматики Shell.
env foo=bar bash -c 'echo $foo'
@username...comment
указанный вами пользователь получит небольшое сообщение, сообщающее им, что вы разговаривали с ним. хорошо, они будут, если его нить актуальна.luit.c
и я думаю , что я могу просто изменить ,setup_io(){ ... ;fnctl(0, [GS]ETFL, 0);...}
чтобы сделать2
для первого аргумента. ну, я думаю, чтоcopyTermios()
иsetRawTermios()
функции, возможно, тоже нужно немного изменить, но я думаю, что все должно быть просто.rc = (return)
для каждой строки , кажется странным , - но я не C программистов либо. это ваша вещь или это досталось по наследству? и если ваш пустой комментарий относится к"${set_null_var:=new val and $(echo other stuff)}"
вам, вы в большей степени в безопасности. некоторые снаряды будут делать странные вещи с}
.