При создании пользовательского установщика USB для Centos6.6 (непросто) я обнаружил, что если в разделе% 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 очень часто встречается что-то вроде этого шаблона:
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, с которым, похоже, возникают проблемы с кикстартом.
- это обратные кавычки предполагаемый работать в кикстарте?
Изменить II: Добавлен $ (ls) в пример