ビットウォークの高橋です。
所詮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/