[英]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.