【发布时间】:2010-11-25 17:29:11
【问题描述】:
我正在使用一个快速而肮脏的 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)。
有谁知道为什么函数不工作而脚本终止?
【问题讨论】:
-
路过的投票者很讨厌,但它们会发生;最好习惯它。如果您认为自己受到攻击(很多反对票),请联系团队或询问元数据。他们可能是一个失败者,他们的反对票可能比你想要的更宽松,但你最好忽略他们。 (可悲,不过如此。)