作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编译一个大项目,这涉及到我去不同的目录并在那里编译东西。我有三个数组,它们都包含命令,第一个数组包含目录遍历,第二个数组包含编译命令,第三个数组包含错误消息。
我的数组是这样设置的
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[@]}"
对我也不起作用,因为我有三个变量。有人对如何解决这个问题有任何见解吗?
感谢任何能提供帮助的人。 :)
最佳答案
task
数组的大小是 ${#task[@]}
(漂亮的语法,嗯?)。所以你可以开始你的循环
for ((i=0; i<${#task[@]}; ++i))
有关详细信息,请参阅 for
命令和 bash(1) 中有关 ARITHMETIC EVALUATION 的部分。
关于bash - 遍历数组并执行存储在变量中的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8009885/
我是一名优秀的程序员,十分优秀!