Мне нужно написать макрос, который получает несколько аргументов. например ./macro.sh -wrongone -f filename -wrongone. Я должен поймать неправильные и перечислить их и сделать требуемую операцию над действительными. Вот мой код:.Bash пропуская итерацию для
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]}"
, но он возвращал мне все числа, а не строки. Я бы очень благодарен за полезные ответы.
Да, это код, который мне нужен! спасибо! – FilOle
Хмм, хотя он все еще не работает, как я и предполагал: /. Тогда будут использовать другие решения: P. – FilOle
@ user3593720, Если вы отредактируете свой вопрос, объясняя, почему это не работает по назначению, возможно, мы сможем работать над ним **; -) ** – BorrajaX