作者: Keiichi Takahashi
日時: 2002/4/09(14:36)
ビットウォークの高橋です。

所詮TclはTclらしく、ということでcatchコマンドを使った例です。

--- ここから ---
#!/bin/sh
# the next line restarts using tclsh \
exec tclsh "$0" "$@"

# add_number
# n = n + m を計算する
proc add_number {n m} {
    if {[catch {set n [expr $n + $m]} errmsg]} {
        puts $errmsg
    }
    return $n
}

#-------
# メイン
# ------

# 初期値
set total 0

# コマンド引数の読み込み
if {$argc} {
    foreach value $argv {
        set total [add_number $total $value]
    }
}

# 0が入力されるまでループ
while {[set value [gets stdin]] != 0} {
    set total [add_number $total $value]
}

# 合計を出力
puts "合計:$total"

exit
--- ここまで ---


・実行例

例えばファイル名をaddition3.tclとして保存して、[TSabc:45]と同じように実
行します。

$ chmod +x ./addition3.tcl
$ ./addition3.tcl
-2.5
2e-2
2e
syntax error in expression "-2.48 + 2e"
4.5
+6.5
8
10.
0
合計:26.52


-- 
Keiichi Takahashi, bitWalk Co.,Ltd.
mailto:bitwalk@...
http://members10.tsukaeru.net/bitwalk/