[問題] 一個Linux shell的基本問題

看板Linux作者 (薇薇安安)時間1年前 (2023/01/27 16:30), 1年前編輯推噓4(405)
留言9則, 4人參與, 1年前最新討論串1/1
各位好,本人想用一個簡單的shell script 來讓某目錄下的多個submodule,並在其中執行git checkout (commit SHA) 及 git restore . 目前想到的大概是這樣,才後會用多個if來找我要的submodule: for item in /path/to/submodule/*;do if [${item} == 'name'];then git restore . git checkout (commit SHA) fi done 然而 if[${item} == 'name'] 這不要怎麼寫才對 我希望name對應到的是路徑最右邊的item 先謝謝各位看完問題了,因為很少寫shell所不太會問,不清楚的地方我會再補充 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 47.187.207.248 (美國) ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1674808259.A.221.html ※ 編輯: VivianAnn (47.187.207.248 美國), 01/27/2023 16:34:14

01/27 18:10, 1年前 , 1F
不是下 git submodule update 嗎?
01/27 18:10, 1F

01/27 18:31, 1年前 , 2F
if [ "${item}" = name ] 所有的空格都不能省略。
01/27 18:31, 2F

01/27 18:32, 1年前 , 3F
不過應該不用自己寫 for,可以用 git submodule foreach
01/27 18:32, 3F

01/27 20:47, 1年前 , 4F
這個我第一個想到的也是 git submodule foreach
01/27 20:47, 4F

01/28 16:27, 1年前 , 5F
會問這個是因為submodule很多,而且每個submodule都會
01/28 16:27, 5F

01/28 16:27, 1年前 , 6F
用一個特定的commit,這可能只能用git checkout來做。
01/28 16:27, 6F

01/28 16:27, 1年前 , 7F
有時候因為不明原因,某幾個submodule的commit會跑掉,
01/28 16:27, 7F

01/28 16:27, 1年前 , 8F
要再手動一個個調回很費時
01/28 16:27, 8F

01/28 19:57, 1年前 , 9F
你可以把 if 那段寫在給 foreach 執行的 script 裡。
01/28 19:57, 9F
文章代碼(AID): #1Zqul38X (Linux)
文章代碼(AID): #1Zqul38X (Linux)