Bash обрабатывает присвоения переменных, когда они разрешены в качестве аргументов (с alias
, declare
, export
, local
, readonly
и typeset
), прежде всего (или, скорее, он идентифицирует их прежде всего — расширение применяется к значениям, присвоенным переменным ). Когда дело доходит до расширения слов, остается команда export EDITOR
, поэтому _
устанавливается на EDITOR
.
Вообще говоря, аргументы — это «слова», оставшиеся после раскрытия (, которые не включают присвоение переменных и перенаправление ).
Подробнее см. Расширение простой команды в руководстве Bash.
У меня была точно такая же проблема с pxe и компакт-диском восстановления системы. Оказывается, он игнорирует ваши аргументы http и переходит к локальному коду монтирования / загрузки iso, который, конечно, не определен.
Параметр «SYSAPPEND» действителен только в syslinux 5.10+, я думаю, что наша версия загрузчика pxelinux.0 старше, и поэтому этот параметр не распознается. Вы можете изменить на «IPAPPEND 1», что я и сделал, или обновить pxelinux.0
Основная проблема заключается в том, что http-хук pxe _ожидает значение ключа «ip» в аргументах ядра, которое предоставляется SYSAPPEND/IPAPPEND. без этого набора он игнорирует весь код http.
См.:https://github.com/rcrowley/archiso/blob/master/archiso/initcpio/hooks/archiso_pxe_http
иhttps://wiki.syslinux.org/wiki/index.php?title=SYSLINUX#SYSAPPEND_bitmask