Language
コメント†
- "#" 以降がコメントになる
- 式を書いた後にコメントを書く場合、 "#" の前に ";" がないとエラーになるので注意
I/O†
- 定義済みの channel_ID: stdout / stderr / stdin
- 出力
- puts [-nonewline] channel_ID string
- 入力
1sec 未満の sleep†
グローバル変数†
他のスクリプトファイルから関数や変数を取り込む†
- あるスクリプト(script-main.xとする)から、別のスクリプトファイル(script-sub.xとする)の中身を取り込みたいときは、以下のように記述する:
source "script-sub.x";
- これにより、script-sub.x の定義内容が、元からscript-main.xに書かれていたかのように扱える。
フロー制御†
set i 10;
set EXP 20;
if { ${i} > ${EXP} {
処理...
} elseif { ${i} == ${EXP} } {
処理...
} else {
処理...
}
for†
set LOOP_MAX 100;
for { set i } { ${i} < ${LOOP_MAX} } { incr i } {
処理...
}
foreach†
while†
while { ${i} >= ${VAL} } {
処理...
}
ループ制御の補助コマンド†
command | description |
continue | ループをスキップ。 |
break | ループを終了 |
exit [ return_code ] | return_code は、default では0 |
switch†
switch [options] ${string} {
pattern_1 {
処理...
}
pattern_2 {
処理...
}
...
default {
処理...
}
}
- options
option | description |
-exact | string と pattern が完全に一致する場合に真となる |
-glob | string をグロブパターン pattern とマッチング |
-regexp | string を正規表現 pattern とマッチング |
-- | option 終了を示す |
- option 無しの場合、値 1 と 値 01 は、別物として識別される。
経過時間の計測†
# 経過時間計測
# 1. GetWrapInit で start_ts を取得。
# 2. GetWrap を、 start_ts を渡して呼ぶと、現在時間との差分を返す。
proc GetWrapInit { } {
set start_ts [ clock clicks -milliseconds ];
set start_ts [ clock format ${start_ts} -format "%s" ];
return ${start_ts};
}
proc GetWrap { start_ts } {
set ts [ clock clicks -milliseconds ];
set ts [ clock format ${ts} -format "%s" ];
set wrap [ expr ${ts} - ${start_ts} ];
return ${wrap};
}
expect†
シグナルを受け取った時の処理†
log の取得†
参考リンク†