有人可以解释为什么这一直失败吗?为什么用'['失败?
set hostname ""
if {$hostname eq ""} {
puts "Usage: host [-u username] [-p password] [-f]"
exit 5
}
if {[string length $hostname] == 0} {
puts "Usage: host [-u username] [-p password] [-f]"
exit 5
}
if {[string equal $hostname ""]} {
puts "Usage: host [-u username] [-p password] [-f]"
exit 5
}
我得到以下错误:
invalid command name "-u"
while executing
"-u username"
invoked from within
"if {$s eq ""} {puts "Usage: host [-u username] [-p password] [-f]"}"
代码似乎执行罚款,但我似乎无法使用看跌期权与包含括号的字符串。
我只是闯入Tcl和我发现,它与其它语言相比有不少怪癖。谢谢你的答案。 我也发现用大括号括起来的字符串可以纠正问题,并且只有附加字符串中的附加大括号才需要被转义。 – Zhro
是的,Ousterhout得到了绝大部分的正确,但评价部分一直是Tcl的致命弱点。 – 2013-07-15 04:53:02
@Yatin事实上,这种语言比其他语言更加一致。除非你不费吹灰之力地引用它们,否则括号总是意味着相同的东西,所以你知道你必须煞费苦心。完全可预测的。 –