簡體   English   中英

什么是有效字符以及如何在 clap.rs arguments 中轉義?

[英]What are valid characters and how to escape in clap.rs arguments?

我想將某種形狀或形成字典/地圖/對象傳遞到我的 Clap 應用程序中。 我可以預處理 dict 以將其變成一些 csv 或其他任何東西。 我的問題是我無法在 clap 文檔中找到哪些字符對參數值有效以及如何轉義它們。 這與拍手無關,而是特定於 shell?

我可以通過類似的東西嗎

myApp --dicty="a=1,b=3,qwe=yxc"

?

這與拍手無關,而是特定於 shell?

大多數情況下,是的。 clap將得到 shell 確定的任何 arguments 並將解析它。

然而,clap 內置了對值集的支持,來自自述文件:

  • 支持多個值(即-o <val1> -o <val2>-o <val1> <val2>
  • 支持分隔值(即-o=val1,val2,val3 ,也可以更改分隔符)

如果這還不夠,那么您必須將dicty定義為String ,您將收到字符串a=1,b=3,qwe=yxc (我認為您不會收到引號)然后您將必須自己解析,無論是手動(正則表達式/拆分/...)還是使用更高級的東西(例如 csv 板條箱,盡管這可能有點矯枉過正)。

不過,這似乎是一個有點奇怪的期權價值。

FWIW structopt(它建立在 clap 之上以提供更具聲明性的 UI,應該是 Clap 3 的一部分)並不完全支持這類東西,但可以相對容易地強制使用它: https://github.com/ TeXitoi/structopt/blob/master/examples/keyvalue.rs

通過一些修改將允許類似

myApp -D a=1 -D b=3 -D que=yxc

或(盡管請參閱鏈接片段中的評論以了解限制)

myApp -D a=1 b=3 que=yxc

收集為vec,[("a", "1"), ("b", "3"), ("que", "yxc")]從中創建 hashmap 是微不足道的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM