作者VivianAnn (薇薇安安)
看板Linux
标题[问题] 一个Linux shell的基本问题
时间Fri Jan 27 16:30:57 2023
各位好,本人想用一个简单的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://webptt.com/cn.aspx?n=bbs/Linux/M.1674808259.A.221.html
※ 编辑: VivianAnn (47.187.207.248 美国), 01/27/2023 16:34:14
1F:推 abc0922001: 不是下 git submodule update 吗? 01/27 18:10
2F:推 lantw44: if [ "${item}" = name ] 所有的空格都不能省略。 01/27 18:31
3F:→ lantw44: 不过应该不用自己写 for,可以用 git submodule foreach 01/27 18:32
4F:推 drm343: 这个我第一个想到的也是 git submodule foreach 01/27 20:47
5F:→ VivianAnn: 会问这个是因为submodule很多,而且每个submodule都会 01/28 16:27
6F:→ VivianAnn: 用一个特定的commit,这可能只能用git checkout来做。 01/28 16:27
7F:→ VivianAnn: 有时候因为不明原因,某几个submodule的commit会跑掉, 01/28 16:27
8F:→ VivianAnn: 要再手动一个个调回很费时 01/28 16:27
9F:推 lantw44: 你可以把 if 那段写在给 foreach 执行的 script 里。 01/28 19:57
10F:推 okgogogo: 怎不用repo 02/07 16:58