我在 wsl Ubuntu 20.04 上,無法理解為什么我的命令似乎沒有考慮我的第一個引數,好像它在解釋引號時遇到了麻煩。知道這里發生了什么嗎?在此先感謝您的幫助
uj5u.com熱心網友回復:
正如評論中已經提到的,|是一個管道,因此任何輸出git tag -l都通過管道傳輸到echo并且因為echo并沒有真正讀取輸入,只是忽略它,您得到的只是“HELLO”。
OR 運算子 ,||可能是您想要的,盡管它不會像 那樣作業git tag -l,因為即使沒有標簽,該命令也會回傳成功。但是在評論中你提到你真正想要的是git tag -d TAG. 這應該可以正常作業,因為當 TAG 不存在時它會回傳失敗。
您還擔心使用 OR 運算子會過早地停止處理您的模塊。事實正好相反。從檔案:
任何子模塊中命令的非零回傳都會導致處理終止。這可以通過添加 || 來覆寫 : 到命令的結尾。
所以沒有||處理將在第一個沒有 TAG 的子模塊上停止。
如果您也希望它使用它,git tag -l如果沒有標簽,您必須以某種方式使其回傳失敗。一種可能不是最好的方法是將其輸出通過管道傳輸到grep ".*". 一些例子:
]$ git submodule foreach 'git tag -l "v5.0*beta1" | grep ".*" || echo "NOT FOUND"'
Entering 'qtactiveqt'
v5.0.0-beta1
Entering 'qtbase'
NOT FOUND
Entering 'qtqa'
v5.0.0-beta1
Entering 'qtrepotools'
v5.0.0-beta1
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/368392.html
標籤:猛击
