我想编译一个大项目,这涉及到我去不同的目录和编译的东西。 我有三个数组,它们都包含命令,第一个数组包含目录遍历,第二个数组包含编译命令,第三个数组包含错误消息。循环数组并执行存储在变量中的命令
设置我的阵列,像这样
task[0]="cd vssl/make/; make clean;"
compile[0]="make all"
error[0]="echo \"We failed at vssl install\""
task[1]="cd ../../web/make/; make clean;"
compile[1]="make install"
error[1]="echo \"We failed at web install\""
现在我需要一个for循环,会像这样
for i in {0..$size_of_array}
do
eval ${task[$i]}
if (eval ${compile[$i]}); then
echo "Done"
else
eval ${error[$i]}
break
fi
done
我已经尝试了很多东西,而且不知道如何实现它。 for i in "${task[@]}"
对我不起作用,因为我有三个变量。任何人都有任何见解如何解决这个问题?
感谢任何人都可以提供帮助。 :)
非常感谢你,这正是我想要的!完美地工作。谢谢! – Quillion
另一种方法是对于$ {!任务[@]}中的我“; do ...; done' – potong
好的!所有这些都在bash(1)的“参数扩展”部分进行了说明。 –