【发布时间】:2015-05-24 21:55:16
【问题描述】:
我必须编写一个很少有参数的宏。例如 ./macro.sh -wrongone -f 文件名 -wrongone。 我必须抓住错误的并列出它们并对有效的进行必要的操作。这是我的代码:
for i in "${ArrayOfParameters[@]}"
do
tmp=$[tmp+1]
case "${i}" in
"-h" | "--help")
help
;;
"-f")
a="${ArrayOfParameters[i+1]}"
echo $a
i=$[i+1]
;;
*)
echo -e "${red}Parameter ${i} is wrong!${NC}"
;;
esac
done
我的问题是我不知道如何让'文件名'被默认的开关操作跳过:(。每次我收到错误文件名是错误的参数。我正在考虑跳过一次迭代。像在 C++ 中。
for(int i=0;i<5;i++)
if(i==3)
i=4;
我想在 Bash 中获得类似的东西,但不知道该怎么做。 试过了
for (( i=0; i<=5; i++ ))
a="${ArrayOfParameters[i]}"
但它一直返回给我的是数字而不是字符串。 我将非常感谢有用的答案。
【问题讨论】:
标签: linux bash for-loop iteration