【发布时间】:2018-04-08 07:18:39
【问题描述】:
我正在使用 tcl 模拟用户对 shell 的输入
if {$toOperand == 0} {
set operand +
} elseif {$toOperand == 1} {
set operand -
} elseif {$toOperand == 2} {
set operand *
} elseif {$toOperand == 3} {
set operand :
} elseif {$toOperand == 4} {
set operand @
} else {set operand #}
所有字符都可以正常工作,除了“-”。这是错误:
": must be -i, -h, -s, -null, -0, -raw, -break, or --
while executing
"send "$operand\r""
感谢任何帮助
【问题讨论】:
-
你可能想要考虑将你相当冗长的 if-elseif-else 探戈变成一个操作数列表,
toOperand作为列表索引:set opnds {+ - * : @ #}; set operand [lindex $opnds $toOperand];...这假设toOperand默认以某种方式到end,代表您的else分支。 -
@mrcalvin 嘿,谢谢你的建议
-
switch命令将是另一种选择。