ファイルに記載された、0000024などの7桁の数字に1足して0付きで返すサンプル。
サンプルでは、変数_TEMPFILE内に記載された最終行の数字を最後の番号として1進めて、もし9999999に達したら0000001に戻るという仕様にしている。もっとスマートな書き方はあると思うが泥臭くcase文を使用して作成。
変数説明
_TEMPFILE ・・・ 加算する元になる数字を1行単位で記載しているファイル
_TEMP1、_TEMP2 ・・・ 作業用変数
_OUTPUTNUM ・・・ 加算後の数字
if [ -s ${_TEMPFILE} ];
then
_TEMP1=`tail -1 ${_TEMPFILE}`
if [ ${_TEMP} == "9999999"];
then
_TEMP2="0000001"
else
_TEMP2=`expr ${_TEMP1} + 1`
fi
case ${#_TEMP2} in
1) _OUTPUTNUM="000000${_TEMP2}"
echo ${_OUTPUTNUM} >> ${_TEMPFILE} ;;
2) _OUTPUTNUM="00000${_TEMP2}"
echo ${_OUTPUTNUM} >> ${_TEMPFILE} ;;
3) _OUTPUTFILENUM="0000${_TEMP2}"
echo ${_OUTPUTNUM} >> ${_TEMPFILE} ;;
4) _OUTPUTFILENUM="000${_TEMP2}"
echo ${_OUTPUTNUM} >> ${_TEMPFILE} ;;
5) _OUTPUTNUM="00${_TEMP2}"
echo ${_OUTPUTNUM} >> ${_TEMPFILE} ;;
6) _OUTPUTNUM="0${_TEMP2}"
echo ${_OUTPUTNUM} >> ${_TEMPFILE} ;;
7) _OUTPUTNUM="${_TEMP2}"
echo ${_OUTPUTFILNUM} >> ${_TEMPFILE} ;;
*) echo "Error!!"
esac
fi
0 件のコメント:
コメントを投稿