我正在使用一个快速而肮脏的 BASH 脚本来自动化 CF 分区过程。
在我想添加它之前,这很有效。
基本上,我有一个脚本可以像这样对紧凑型闪存进行分区:
CMD=.fdisk
DEV=/dev/sdc
echo "Calculating partition sizes..."
P1SIZE=+1100M
P2SIZE=+1200M
echo "Creating instruction file..."
PT1="n p 1\n $P1SIZE"
PT2="n p 2\n $P2SIZE"
END="a 1 w EOF\n"
[ -e $CMD ] && rm -rf $CMD
for i in $PT1 $PT2 $END; do echo -e $i >> $CMD; done
echo "Creating partitions..."
fdisk $DEV << EOF < $CMD
[ -e $CMD ] && rm -f $CMD
这个想法是将来由“$CMD”表示的文件将由具有正确开始和结束值的外部工具自动创建。现在我只是接受默认开始并提供大小。
这工作得很好,直到我想在我的脚本中加入一些额外的步骤。但是当我注意到奇怪的行为时,我遇到了问题。
首先是如果我在函数中添加上面的代码,我将不断收到脚本错误:
line XX: syntax error: unexpected end of file
此外,我意识到“fdisk”命令之后的任何附加代码都不会执行,并且脚本似乎只是终止(没有错误,$? = 0)。
有谁知道为什么该功能不起作用并且脚本终止?