Estou tentando criar um preseed.cfg que pode ser usado para uma instalação baseada em CD e uma instalação baseada em rede. Eu percebi que a maneira mais fácil de fazer isso seria usar um bash condicional "if". Como parte do preseed / late eu tenho algo parecido com o seguinte.
d-i preseed/late_command string \
if [ -f "/media/cdrom/pool/extras/info.gz" ];\
then\
echo "CD Install Info";\
cp /media/cdrom/pool/extras/info.gz /target/var/www/info.gz;\
else\
echo "Assuming Network install";\
wget http://192.168.0.1/info.gz;\
cp ./info.gz /target/var/www/info.gz;\
fi
Que falha com um erro dizendo que "fi é esperado". Eu percebi que isso era um problema com o analisador, então eu condensava tudo em uma linha.
if [ -f "media/cdrom/pool/extras/info.gz" ]; cp /media/cdrom/pool/extras/info.gz /target/var/www/info.gz; fi
Este comando termina sem erro, mas o arquivo não é copiado. Depois de muitas tentativas usando sintaxe diferente, comecei a me perguntar se isso é possível. Então, é possível usar condicionais (se houver outros, além disso, se eu deveria tentar me avisar) durante o preseed / late?