web-dev-qa-db-ja.com

tclで変数が空かどうかを確認する方法

変数が空の場合、どのように確認しますか? "\n"またはスペースを含めることができます。私は現在これをやっています

if {{string trimleft $var} != ""} {
   # the variable is not empty
   puts $var
 }

しかし、出力された変数はまだ空のようです? trimleft"\n"を削除しますか?文字列が空かどうかを確認するためのより良いアプローチはありますか?

5
Rajeshwar
if {{string trimleft "\n"} eq ""} {
    puts "1"
} elseif {"\n" eq ""} {
    puts "2"
}
  • 上記のスクリプトは何も出力しません。
  • trimleftは値から\nを削除しないと思います。
2
Bharathi

私の知る限り、文字列が空かどうかのチェックは、次の方法で簡単に実行できます。

if {$myString eq ""} {

    puts "string is empty"

}

以下を実行しても何も出力されません。

if {" " eq ""} {
    puts "1"
} elseif {"\n" eq ""} {
    puts "2"
}

私はあなたの質問を正しく理解したと思います

8

空の行をチェックすることを懸念して元の質問に答えるために、修正されたコード例を次に示します。

if {[string trim $var] != ""} {
    puts $var
}

?chars?を指定せずにトリムは、スペース、タブ、改行、およびキャリッジリターンと見なされる空白文字を削除します。

3
Earnie