我正在尝试创建一个可用于基于 CD 的安装和基于网络的安装的 preseed.cfg。我认为最简单的方法是使用 bash 条件“if”。作为 preseed/late 的一部分,我有类似以下内容的内容。
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
失败并显示错误“fi is expected”。我认为这是解析器的问题,所以我将所有内容压缩到一行。
if [ -f "media/cdrom/pool/extras/info.gz" ]; cp /media/cdrom/pool/extras/info.gz /target/var/www/info.gz; fi
此命令完成时没有错误,但文件未复制。在使用不同语法尝试多次后,我开始怀疑这是否可行。那么,在 preseed/late 期间是否可以用条件语句(如果还有其他条件语句,请告诉我)?