CF パーティショニング プロセスを自動化するために、簡単で汚い BASH スクリプトを使用していました。
追加したくなるまで、これはうまくいきました。
基本的に、コンパクト フラッシュを次のように分割するスクリプトがあります。
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」で表されるファイルが、適切な開始値と終了値を持つ外部ツールによって自動的に作成されるということです。今は、デフォルトの開始を受け入れて、サイズを指定するだけです。
これは、スクリプトにいくつかの追加ステップを組み込みたいと思うまでは、非常にうまく機能しました。しかし、奇妙な行動に気づいたときに問題が発生しました。
1 つ目は、上記のコードを関数内に追加すると、スクリプト エラーが発生し続けることです。
line XX: syntax error: unexpected end of file
また、「fdisk」コマンドの後の追加コードは実行されず、スクリプトが単純に終了するように見えることにも気付きました (エラーなしで、$? = 0)。
関数が機能せず、スクリプトが終了する理由を知っている人はいますか?