有人可以解釋爲什麼這一直失敗嗎?爲什麼用'['失敗?
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事實上,這種語言比其他語言更加一致。除非你不費吹灰之力地引用它們,否則括號總是意味着相同的東西,所以你知道你必須煞費苦心。完全可預測的。 –