2012-09-24 30 views
1

如何通過僅輸入一次更改列表來同步給定更改列表中的2個完全獨立的樹。給出的結果與p4同步Perforce命令行通過僅輸入一次更改列表將多個樹同步到一個更改列表

p4 sync //tree1/a/b/c/[email protected] //tree2/d/e/[email protected] 

哪個工作,但需要輸入1234兩次?

這給 「近意外的標記'('語法錯誤」:

p4 sync (//tree1/a/b/c/... //tree2/d/e/...)@1234 

此同步//樹1/A/B/C/...,而不是頭:

p4 sync //tree1/a/b/c/... //tree2/d/e/[email protected] 

主要原因是我想創建一個shell別名,但是1234部分是用戶輸入的,所以它只能輸入一次。我知道我可以使用shell腳本或函數,但由於各種原因,我必須使用別名。

+1

我不明白你爲什麼不能在別名中使用兩次用戶輸入的變量。 – Timwi

+0

@Timwi,因爲至少在bash中,「在替換文本中沒有使用參數的機制,如果需要參數,應該使用shell函數」。儘管知道需要別名的理由很有趣。 –

+0

@romkyns:謝謝。它實際上是AutoHotkey中的一個宏,它將字符串「p4sync」擴展爲字符串,然後輸入空格,退格和變更列表號碼來完成它。隨着AHK字面輸出,我可以使用箭頭鍵來修改邊緣情況。我認爲這太冗長了解釋,所以把它形容爲一個別名。順便說一句,你是如何得到這樣一個不錯的對稱identicon? – Gnubie

回答

1

從評論中,(b灰,至少)shell語法的

p4 sync {//tree1/a/b/c/...,//tree2/d/e/...}@1234 

應該工作。有關更多解釋,請參閱bash參考的brace expansion section

相關問題