Если вам нужно проверить наличие и местоположение определенного аргумента, все, что вам нужно сделать, - это проанализировать командную строку и проверить каждый аргумент на соответствие вашему «ожидаемому» значению. Итак, вам нужно проверить каждый аргумент для значения, -noenter
а затем напечатать строку с указанием позиции и имени переменной -noenter
:
for i in `seq 1 $#`; do ref=`eval "echo \\$$i"` if [ $ref == '-noenter' ]; then echo "arg $i is $ref"; break; fi done
Теперь то же самое, только позиция аргумента -noenter
сохраняется в $mitsos
и позиция аргумента до этого в $mary
:
for i in `seq 1 $#`; do ref=`eval "echo \\${$i}"` if [ $ref == '-noenter' ]; then mitsos=$i eva=$(($i-1)) mary=`eval "echo \\${$eva}"` break fi done
и теперь $mitsos
имеет позицию -noenter
или нет значения и $mary
значение аргумента, предшествующего -noenter
. На этом этапе, если $mary
у /dir
вас есть значение, которое вы знаете следующим аргументом, -noenter
и вы можете продолжить реализацию find
, в противном случае вы используете версию системы или выводите сообщение об ошибке. Наконец, если вы не заботитесь о позиции, -noenter
вы можете пропустить строку mitsos=$i
.