2

これが失敗し続ける理由を誰かが説明できますか?

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]"}"

コードは正常に実行されるようですが、中かっこを含む文字列で puts を使用できないようです。

4

2 に答える 2

8

二重引用符で囲まれた文字列内の角括弧は評価を意味します。バックスラッシュで角括弧をエスケープしてみてください。

于 2013-07-15T04:31:15.513 に答える