【发布时间】:2022-01-19 16:46:08
【问题描述】:
有什么方法可以控制我运行 a, for d in * 时发生的排序;做;回声 $i;完毕;在我的目录中?我有这个文件夹结构:
root/
|__CloudUtils/
|__ComponentSplit/
|__ComponentStatistics/
|__ETLManager/
|__MergeComponent/
|__NormalizeComponent/
|__Reducer/
我想更改顺序,以便 mvn 将在 CloudUtils 之后立即编译 NormalizeComponent。
for d in */ ; do
d=${d::-1}
mvn clean deploy -f "$d"
done
有办法吗?
【问题讨论】:
-
你想要的排序顺序的逻辑是什么?如果您只想先处理特定文件,请不要在循环中进行。
-
如果您在
${d::-1}中的目标是从末尾剥离/,则使用${d%/}对读者来说更明确地说明了该意图(并且具有不会剥离的额外好处任何不是/) -
给定这个目录结构,这难道不是
for d in root/*或cd root; for d in *而不是您发布的代码吗?在这两种情况下,文件名的生成都应该在 bash 下按字母顺序完成。 -
对于更复杂的依赖关系,使用 Makefile 不是更干净的方式吗?