我剛開始接觸 bash,我試圖做一個 for 回圈來查找我的 git 目錄中所有未轉換為 svn 的標簽。
我已經運行了以下命令:
echo < for t in $(git for-each-ref --format='%(refname:short)' refs/remotes/tags); do git tag ${t/tags\//} $t && git branch -D -r $t done
但是,我遇到了這個錯誤:
-bash: syntax error near unexpected token `&&'
我嘗試了幾件事,比如移動分號,但它總是相同的錯誤,但有不同的字符,如 &&、done 或者我有以下錯誤:
-bash: for: No such file or directory
因為這些是 unix 命令,所以我在 windows 上使用 cygwin。
有什么想法嗎?
ps:我正在關注這個教程:https ://www.gitkraken.com/blog/migrating-git-svn !感謝您的幫助 :)
uj5u.com熱心網友回復:
<是輸入重定向。正確的是,需要一個檔案名(或一個程序規范,然后必須將其括在括號中)。在您的情況下,您將單詞寫在for右側<并要求 bash 使用名為for替換 stdin的檔案。
此外,輸入重??定向echo無論如何都沒有意義,因為echo不處理標準輸入。你被允許寫一個
echo <abc
如果需要,但是 bash 只會檢查檔案是否存在abc并設定重定向,并且echo會默默地忽略它,因此這樣做沒有任何意義。
uj5u.com熱心網友回復:
首先,您缺少一個;before done。
其次,您不能這樣做echo < for t in...,如果您希望它運行,請洗掉echo < .
如果你不這樣做,你會得到不明確的重定向。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/369442.html
下一篇:避免兩個分支沖突的分支策略
