Попробуйте:
eval "content=\$(cat << @@@EOF@@@
$(cat file)
@@@EOF@@@
)"
Это расширит подстановки параметров, арифметики и команд, а \
используется для экранирования (из $
, `
и только самого )и продолжения строки -. Например,на вход типа:
* foo
\/-!~
FOO=${FOOBAR} $((1+1)) $(uname)
\${FOOBAR}\\foo\
bar
Это дает что-то вроде:
* foo
\/-!~
FOO=content-of-$FOOBAR 2 Linux
${FOOBAR}\foobar
Должно быть очевидно, что это уязвимость внедрения команд, если содержимое файла не находится под вашим полным контролем.
Если я правильно помню, все, что вы вводите в строке boot:
после имени нужной опции загрузки LILO, добавляется к командной строке ядра. Например, поскольку ваша загрузочная метка LILO — Linux
,классический способ загрузки в однопользовательском режиме —:
boot: Linux single
К сожалению, вы не можете просмотреть или изменить существующую командную строку ядра, определенную для каждой опции загрузки LILO. :LILO слишком минималистична для этого.