Ao criar um instalador USB personalizado para o Centos6.6 (não é fácil), descobri que if a seção% post do arquivo de kickstart tem backticks
Isso funciona
%pre --log=/root/postLog.log
echo "This is the post"
ls
%end
Isso não funciona
%pre --log=/root/postLog.log
echo "This is the post"
echo 'ls'
%end
Isso também não funciona
%pre --log=/root/postLog.log
echo "This is the post"
echo $(ls)
%end
Por quê? Eu tenho um monte de coisas que eu preciso fazer no% post e não ter o suporte ao comando de substituição / retrocesso de comando vai tornar isso mais difícil.
Qualquer solução alternativa?
Edit: E por que eu preciso de backticks?
O instalador é para um produto de appliance, portanto, precisa instalar o sistema operacional de base, os rpms de SO personalizados e os rpms de produtos.
Portanto, na seção% post, algo como esse padrão é muito comum:
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
Um padrão semelhante para fazer algo genericamente com arquivos quaisquer que sejam existe em um diretório específico.
O conceito inteiro não funciona se o anaconda vomitar em ter um backtick no arquivo.
Além disso, backtick é um operador bash válido - em que o kickstart parece ter problemas.
Os backstacks do bash supostamente funcionam no kickstart?
Editar II: Adicionou $ (ls) ao exemplo