著者:當仲寛哲
業務システムを開発するときの選択肢として「ユニケージ
開発手法」があります。ユニケージ開発手法は、Linux/UNIX
のコマンドを基盤としたものです。「シェル魔人」と「りな」
の会話を通して、ユニケージ開発手法で業務システムがど
う作られるのかを理解しましょう。
シェルスクリプトマガジン Vol.60は以下のリンク先でご購入できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
#!/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 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#!/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 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
#!/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 |
1 2 3 4 |
echo LV1.101.* | xargs cat | msort key=1@NF | upl key=1@NF LV4 - |