Проблема заключается в том, что текущая оболочка расширяет переменную слишком рано; он не установлен в своем контексте, поэтому команда echo
не получает никаких аргументов, то есть команды заканчиваются:
$ fruit=apple echo
Вот обходной путь, когда переменная не раскрывается слишком рано из-за одинарных кавычек:
$ fruit=apple sh -c 'echo $fruit'
В качестве альтернативы вы также можете использовать однострочный сценарий оболочки, который демонстрирует, что переменная fruit
правильно передается выполняемой команде:
$ cat /tmp/echof
echo $fruit
$ /tmp/echof
$ fruit=apple /tmp/echof
apple
$ echo $fruit
$
Несколько комментариев, так как этот вопрос вызвал неожиданные споры и дискуссии:
fruit
уже экспортирована или нет, не влияет на поведение, важно то, каково значение переменной в тот момент, когда оболочка расширяет ее.$ export fruit=banana $ fruit=apple echo $fruit banana
echo
является встроенной, не влияет на проблему OP.Однако бывают случаи, когда использование встроенных функций или функций оболочки с таким синтаксисом приводит к неожиданным побочным эффектам, например.:$ export fruit=banana $ fruit=apple eval 'echo $fruit' apple $ echo $fruit apple
Хотя между заданным здесь вопросом и тем есть сходство, это не совсем одно и то же. Что касается этого другого вопроса, временное значение переменной IFS
еще недоступно, когда оболочка разделяет словона другую переменную $var
, а здесь временное значение переменной fruit
еще недоступно, когда оболочка расширяет ту же переменную .
Существует также другой вопрос , где ОП спрашивает о значении используемого синтаксиса и, точнее, спрашивает «почему это работает?». Здесь ОП знает о важности, но сообщает о неожиданном поведении и спрашивает о его причине, то есть «почему это не работает?». Хорошо, после более внимательного прочтения плохого снимка экрана, размещенного на другом вопросе, там действительно описана та же ситуация (BAZ=jake echo $BAZ
), так что да, в конце концов, это дубликат
Текущая версия asterisk регистрирует все звонки, которые "были предложены для исходящего звонка" Нет, вы не можете настроить это.
Однако в некоторых случаях вы можете указать cdr.conf
unanswered=no
Если ваши добавочные номера имеютqual=yes, скорее всего, такие звонки не будут записываться (будут использоваться подсказки добавочных номеров ).