特定の式を評価しようとしています。私はコマンドで "pqr" & & "xyz"を持っています。コマンドを評価するとき、それはエラーを返す:close-quoteの後の余分な文字。 私は、二重引用符の後に& &を解析することができないと思う。これが理由なら、どうすれば二重引用符を扱わなければならないのですか?& &?TCLエラー:クローズクォート後の余分な文字
答えて
あなたには十分な情報がありません。
expr "pqr"&& "xyz"
「クローズ引用符の後に余分な文字」というエラーメッセージを与えて行います。
野生の推測では、あなたがこのような何かを書いていたということです。これは、インタプリタがTcl言語の規則に従ってコマンドを解析しようとするためであり、これらの規則の1つは、二重引用符で始まる単語が一致する二重引用符で終わらなければならないということです。この場合、一致する二重引用符の後に2つの&
文字があります。
は今、(二重引用符とアンパサンドの間のスペースを持つ)
expr "pqr" && "xyz"
は、どちらかは良いではありません。これは、インタープリターが、コマンドの引数を準備するときに構文的な機能を持つ文字を削除するためです。これは、引数expr
が文字列pqr && xyz
であることを意味します。 expr
コマンドが実行されると、その引数は、が Tclではない特別な表現言語の文字列として解釈しようとします。特に、ブール値ではないTcl文字列や関数の変数名は、中括弧または二重引用符で囲む必要があります(例:"pqr" && "xyz"
)。どうやってそれを手に入れますか?あなたはいつも引数をexpr
に括っています。そうです。
expr {"pqr" && "xyz"}
はexpr
が法的文字列"pqr" && "xyz"
を取得することを意味します。
は、しかしストリング"pqr" && "xyz"
は、そうexpr {"true" && "false"}
ように、&&
(論理AND)演算がブール値の文字列表現に等しい文字列以外の文字列に対して定義されていないため、まだ有効ではありませんもう一度私たちは立ち往生しています。あなたがしているように見えるものは意味をなさないからです。あなたがしていることを私たちに示すなら、私たちはあなたを助けることができるかもしれません。
*)です。まれな、熟練したレベル。
ドキュメント: expr、 Mathematical operators as Tcl commands、 Summary of Tcl language syntax
ブレースあなたの表現
に同じメカニズムを使用しexprコマンド(ひいては、コマンドfor
、if
、およびwhile
、それらの条件を評価する)は、引数から構成された式文字列を解釈します。式文字列の言語はTclのではないことに注意してください、しかしexpr
コマンドの式の評価に固有:言語は、多くの構文形式を共有しますが、expr
言語とプレフィックスの中置、オペレータベースの構造に根本的に異なっている、コマンドベースTclの構造。 Tclインタプリタをまかせ
- 二重置換、につながることができ
expr
に渡す前に引数を評価します。 - 反復コマンド(
for
、while
)無限ループにつながる、一定の値の条件の引数を取得。expr
が選択それらの一部を抑制することができるが(したがって、その副作用) - すべての置換が常に生じます。
したがって、ないはTclインタプリタによって評価されるブレース(エスケープ)文字列、唯一expr
通訳として表現文字列を提供するために、ほとんど常により良いです。
expr
の引き数を無効にすることは、引数評価がそれらを有効なものに変換する限り、無効な式ストリングであることが許されていますが、中括弧はそのまま有効でなければなりません(例えば、変数またはコマンドの置換は単純オペランド演算子や複雑な式ではありません)。それから - (10倍高速5)
ブレース表現文字列を使用してからのもう一つの利点は、通常、バイトコンパイラがより効率的なコードを生成することができるということです。
- 1. 余分な文字...?
- 2. 余分な文字クローズブレース
- 3. は、Mac上のsed 'pコマンドの後に余分な文字' を
- 4. Telerik報告バーコードの余分な文字スキャンした後
- 5. 余分な文字のXML PATH
- 6. Zend_Currency余分な文字を表示
- 7. 二重スラッシュの後に余分な文字を含むURLのモディリライト
- 8. SASでマクロ変数の後に余分な文字を追加しますか?
- 9. Greenplum gpload - 最後のエラー:最後の予想カラムの後の余分なデータ
- 10. TCL文字列concat
- 11. ノックアウト、余分なコンテナレスif文
- 12. 私はC文字列の最後に余分な文字を続けています
- 13. 2つの文字列の間に余分な文字を見つける
- 14. Tclの文字列エスケープ
- 15. TCLの特殊文字\ X1
- 16. 文字列内の余分な空白文字を削除する
- 17. JNIへの文字列が余分な文字を取得する
- 18. SQLクエリの削除、余分な行の文字列でCHAR(10)
- 19. 余分なもの取得するコンソールI/Oの文字
- 20. HBaseのKeyValue.getKey()は、次のHBaseコード余分な文字
- 21. なぜsnprintf()は余分な文字を書きますか?
- 22. ループ後の余分な出力
- 23. ルビの行から余分な文字を取り除く
- 24. WordPressのHTMLタイトルに余分な文字が表示される
- 25. JavaScriptの正規表現と余分な文字列
- 26. PHP出力文字列の余分なコンマを削除する
- 27. Jenkins:ロケーションアドレスの余分な "%402"文字による障害
- 28. 余分なセミコロンが文字列の等価性を破る
- 29. 式の余分な文字でng-bindをレンダリングします
- 30. 文字列内の余分なスペースを削除する方法
あなたはエラーになり、実際のコードを表示することができますか? "pqr"と "xyz"はブール値ではないので、ここに示した内容はあまり意味がありません。したがって、&&で結合することはできません。 –