Я думаю, что требования предъявляются не к заголовкам ядра, а к пакету kernel-devel. Пакет kernel-devel предоставит вам модули .ko. Посмотрите, поможет ли вам выполнение apt-get install для пакета ядра devel?
\
используется там несколько раз:
`...`
. Лучше всего использовать $(...)
. $
, `
и \
внутри двойных кавычек. Вместо этого лучше использовать одинарные кавычки. \
в аргументе формата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"
Я только что снова столкнулся с той же проблемой, и на этот раз я не смог реорганизовать входные данные, чтобы сделать это decimal
.
Если никто другой не может показать обратное, внутренний printf
в BASH в режиме SH можетне печатать символы "\xFF", несмотря на то, что говорится в руководстве и на страницах справки. Я бы сказал, что это ошибка, по крайней мере, в BASH.
#!/bin/sh
printf "\x46\x47"
Если вы удалите кавычки из строки, оболочка уберет их без обработки части x
.
Что тогда работает?:
#!/bin/sh
PF=`which printf`
$PF "\x46\x47"
Таким образом, текущее решение, если у вас есть только шестнадцатеричныйкактекст , и вы хотите символ или байт , передать каждый (текст )байт в файл скрипта (, как показано во втором коде )с \x
добавленным (перед )каждым значением, chmod
скрипт внутри вашего скрипта, затем выполнить сценарий на следующей строке и удалить сценарий, если это необходимо.