著者:當仲寛哲
業務システムを開発するときの選択肢として「ユニケージ
開発手法」があります。ユニケージ開発手法は、Linux/UNIX
のコマンドを基盤としたものです。「シェル魔人」と「りな」
の会話を通して、ユニケージ開発手法で業務システムがど
う作られるのかを理解しましょう。
シェルスクリプトマガジン Vol.60は以下のリンク先でご購入できます。![]()
![]()
#!/bin/bash -vx
#
# JIKANTAI.CGI 時間帯別販売情報参照システムのCGI スクリプト
(略)
# POST データの受け取り
if [ ! -z "$CONTENT_LENGTH" ] ; then
dd bs=$CONTENT_LENGTH |
cgi-name -n_ -s_ > $tmp-name
ERROR_CHECK
else
(略)
# はめ込み用日付情報の作成
echo $day $cday |
# 1: 日付 2: 比較日コード
join1 key=2 $tmp-cdaynum - |
# 1: 日付 2: 比較日コード 3: 比較日
delf 2 |
# 1: 日付 2: 比較日
dayslash --output "yyyy 年_mm 月_dd 日" 1 2 |
cat > $tmp-day
ERROR_CHECK
# 現在時刻
curtime="$(dayslash -d $todayhms --output 'yyyy 年 mm 月 dd 日 HH:MM:SS')"
##################################################
# HTML 作成
cat $apld/HTML/JIKANTAI.HTML |
mojihame -lSHOP_RECORDS - $tmp-data |
mojihame -lSYOHIN_INFO - $tmp-info |
mojihame -lSEARCH_DATE - $tmp-day |
formhame -s_ -n_ - $tmp-name |
calsed '###CURRENT_TIME###' "$curtime" |
calsed '###USER###' "$USER" |
cat > $tmp-html
#!/bin/bash -x
join1 key=2 PRICE SALES | # 原価/ 売価を連結
join1 key=2 CATEGORY | # カテゴリを連結
lcalc '$3,$7,$8,$8-$7*$4' | # 売数/ 売上/ 荒利計算
msort -p4 key=1 | # カテゴリでソート
sm2 1 1 2 4 | # 売数/ 売上/ 荒利集計
sm5 1 1 2 4 | # 合計行の付加
divsen 2 3 4 | # 千で除算
divsen 3 4 | # 千で再除算
lcalc '$1,$2,$3,$4,100*$4/$3' | # 荒利率を求める
marume 5.1 | # 四捨五入
join2 key=1 CATEGORY_NAME | # カテゴリ名の連結
comma 3 4 5 | # カンマ編集
keta | # 桁そろえ
keisen +e | # 罫線を引く
cat header - # 出力
exit 0
#!/bin/bash
# 商品コードに、原価/売価を連結
join1 key=2 PRICE SALES |
# 商品コードにカテゴリーコードを連結
join1 key=2 CATEGORY |
# [ レイアウト ]
# 1:店コード 2:商品コード 3:カテゴリコード 4:仕入価格 5:販売価格
# 6:販売日付 7:販売個数 8:販売金額 9:値引金額
# カテゴリコード、売数、売上、粗利(売上-売数x仕入価格)を計算
lcalc '$3,$7,$8,$8-$7*$4' |
# [ レイアウト ]
# 1:カテゴリコード 2:販売個数 3:販売金額 3:粗利金額
msort -p4 key=1 | # カテゴリでソート
sm2 1 1 2 4 | # 売数 / 売上 / 粗利集計
sm5 1 1 2 4 | # 合計行の付加
divsen 2 3 4 | # 千で除算
divsen 3 4 | # 千で再除算 (売上・粗利は百万円単位)
# 粗利率を求める
lcalc '$1,$2,$3,$4,100*$4/$3' |
# [ レイアウト ]
# 1:カテゴリコード 2:販売個数 3:販売金額 4:粗利金額 5:粗利率
# 粗利率を四捨五入
marume 5.1 |
# カテゴリ名の連結
join2 key=1 CATEGORY_NAME |
# [ レイアウト ]
# 1:カテゴリコード 2:カテゴリ名 3:販売個数 4:販売金額 5:粗利金額
# 6:粗利率
comma 3 4 5 | # カンマ編集
keta | # 桁そろえ
keisen +e | # 罫線を引く
cat header - # 出力
exit 0
echo LV1.101.* |
xargs cat |
msort key=1@NF |
upl key=1@NF LV4 -