[问题] 一个Linux shell的基本问题

楼主: VivianAnn (薇薇安安)   2023-01-27 16:30:57
各位好,本人想用一个简单的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所不太会问,不清楚的地方我会再补充
作者: abc0922001 (中士abc)   2023-01-27 18:10:00
不是下 git submodule update 吗?
作者: lantw44 (#######################)   2023-01-27 18:31:00
if [ "${item}" = name ] 所有的空格都不能省略。不过应该不用自己写 for,可以用 git submodule foreach
作者: drm343 (一卡)   2023-01-27 20:47:00
这个我第一个想到的也是 git submodule foreach
楼主: VivianAnn (薇薇安安)   2023-01-28 16:27:00
会问这个是因为submodule很多,而且每个submodule都会用一个特定的commit,这可能只能用git checkout来做。有时候因为不明原因,某几个submodule的commit会跑掉,要再手动一个个调回很费时
作者: lantw44 (#######################)   2023-01-28 19:57:00
你可以把 if 那段写在给 foreach 执行的 script 里。
作者: okgogogo ( )   2023-02-07 16:58:00
怎不用repo
作者: simpson083 (雷姆,是一种信仰)   2023-02-14 08:38:00

Links booklink

Contact Us: admin [ a t ] ucptt.com