亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Cobra Command 中不使用標志選項?

在 Cobra Command 中不使用標志選項?

Go
繁星coding 2023-01-03 10:15:49
我有一個帶有默認選項的命令 - id??赡苓€有其他標志,因此可以調用以下任何一個。cmd 81313 # 81313 is the ID cmd -i 81313cmd -f foo.txt 81313 cmd -i 81313 -f foo.txt cmd 81313 -f foo.txt使用 Cobra 命令處理此問題的正確方法是什么?目前,我正在查看的值-i,如果它為空,則從中讀取值cmdArgs(如果其中有內容,并且沒有標志,那么我假設它是我的 ID)。然而,這似乎更容易出錯——例如,如果有人放下 2 個 ID 會怎樣。謝謝!
查看完整描述

1 回答

?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

我希望有一種更慣用的方式來完成

我認為有,這就是我試圖在評論中傳達的想法:不要提供多種方式來在命令行上指定相同的選項。

在位置參數與選項之間進行選擇時,問題通常是“這個值是命令運行的對象嗎?”。例如,像這樣的命令rm對文件進行操作,因此文件被指定為位置參數:我們不需要寫rm -f file1 -f file2 -f file3,等等。

同樣,該ssh命令連接到遠程主機,因此主機名是一個位置參數。有關該連接的元數據(要使用的身份、要使用的端口、配置選項等)也被指定為命令行選項。

你的問題有點難以回答,因為你還沒有告訴我們你的命令實際上做了什么。如果每次調用都需要“id”,cmd并且它標識了命令操作的對象,那么您應該只將它設為位置參數:

cmd 81313

如果在某些情況下您不需要指定 ID,那么它應該是一個可選參數:

cmd -i 81313

在某些情況下,您可能有“強制性選擇”,但這種情況相對較少。


查看完整回答
反對 回復 2023-01-03
  • 1 回答
  • 0 關注
  • 136 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號