Свежеустановленная Ubuntu 18.04.3 netboot PXE загружается с Ethernet, не управляемым Network Manager

\используется там несколько раз:

  • для формы подстановки команд `...`. Лучше всего использовать $(...).
  • для экранирования таких символов, как $, `и \внутри двойных кавычек. Вместо этого лучше использовать одинарные кавычки.
  • для экранирования \в аргументе форматаprintf
  • ввести эту \xHHпоследовательность в аргумент формата другогоprintf(не стандартного хотя ).

Так и должно быть:

printf `printf "\\\\\\\\x%x" 255 255 255 0`
printf `printf '\\\\x%x' 255 255 255 0`
printf $(printf '\\x%x' 255 255 255 0)

То есть вам нужно передать \\в самый правый printf, чтобы он вывел \, но с `...`вам нужно экранировать каждый \с \и сделать что снова для "...".

Это по-прежнему вызов оператора split+glob, который нам здесь не нужен.Так:

printf "$(printf '\\x%x' 255 255 255 0)"

Или портативный:

printf "$(printf '\\%o' 255 255 255 0)"

С некоторыми awkреализациями (не все работают с 0):

LC_ALL=C awk 'BEGIN{printf "%c%c%c%c", 255, 255, 255, 0}'

Сperl:

perl -e 'print pack "C*", @ARGV' 255 255 255 0

zshальтернатива, позволяющая избежать разветвления подоболочки:

(){setopt localoptions nomultibyte; printf %s ${(#)@}} 255 255 255 0

bashальтернатива, которая позволяет избежать разветвления подоболочки (также работает в последних версияхzsh):

printf -v x '\\%o' 255 255 255 0
printf "$x"
0
18.12.2019, 22:02
1 ответ

использование редактора ISO решило проблему.

0
28.01.2020, 03:00

Теги

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