Пустой файл журнала, если %post содержит обратную кавычку или подстановку команды

Пустой файл журнала, если %post содержит обратную кавычку или подстановку команды

При создании собственного USB-установщика для Centos6.6 (это нелегко) я обнаружил, чтоеслираздел %post файла kickstart имеет обратные кавычки

  • Anaconda завершает работу, но немедленно завершает работу с пустым экраном (без видеовыходов). Обычно она завершается с сообщением о том, что работа Anaconda завершена и т. д. и
  • Оба файла журнала anaconda-ks.log и %post существуют, но имеют нулевую длину.

Это работает

%pre --log=/root/postLog.log
echo "This is the post"
ls
%end

Это не работает.

%pre --log=/root/postLog.log
echo "This is the post"
echo `ls`
%end

Это тоже не работает

%pre --log=/root/postLog.log
echo "This is the post"
echo $(ls)
%end

Почему? Мне нужно сделать много вещей в %post, и отсутствие подстановки команд/поддержки обратных кавычек усложнит задачу.

Есть ли обходной путь?

Редактировать: А зачем мне обратные кавычки?

Установщик предназначен для продукта-устройства, поэтому ему необходимо установить базовую ОС, пользовательские пакеты RPM ОС и пакеты RPM продукта.

Итак, в разделе %post очень распространено нечто вроде следующего шаблона:

cd $ApplicationPackageDir
RPMLIST=`ls *.rpm`
RPMCOUNT=`ls *.rpm | /usr/bin/wc -l`

for theRpm in $RPMLIST
do
    echo /bin/rpm --quiet --upgrade --nodeps --force $theRpm
done

Подобный шаблон для общего выполнения чего-либо счто бы нифайлы существуют в определенном каталоге.

Вся концепция не работает, если анаконда блеет из-за наличия в файле обратной кавычки.

Кроме того, обратный апостроф — допустимый оператор bash, с которым у kickstart, похоже, возникают проблемы.

Являются ли обратные кавычки bashпредполагаемыйработать в кикстарте?

Редактировать II:Добавлен $(ls) в пример

Связанный контент