URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9260
[ Назад ]

Исходное сообщение
"Переход на определенную строку (sh)"

Отправлено Jinx , 19-Окт-11 14:59 
Помогите начинающему скриптеру:
Как возможно перейти на определенный участок кода, после чего продолжить выполнять уже его?

Пример:


echo -n "yes/no"
read test

if [ "$test" == "yes" ]; then
    /здесь нужен код для перемещения на строку ниже
fi

echo "хочу переместиться сюда, и выполнять скрипт уже отсюда"

Обратите внимание - это всего лишь пример для лучшего объяснения чего мне нужно.
Конечно можно скопировать участок кода, на который я хочу переместиться, на место перехода, но тогда скрипт вырастит чуть ли не в 2 раза, что не есть гут.


Содержание

Сообщения в этом обсуждении
"Переход на определенную строку (sh)"
Отправлено Ager , 19-Окт-11 15:29 
забавный вопрос :)     а почему бы не изменить логику скрипта

 
echo -n "yes/no"
read test

if [ "$test" != "yes" ]; then
/код не будет выполнен
fi

echo "без 'перемещений' будет выполняться код  'уже отсюда'"



"Переход на определенную строку (sh)"
Отправлено Jinx , 19-Окт-11 15:41 
> забавный вопрос :)     а почему бы не изменить логику скрипта

В том-то и дело что такой вариант не подходит.
Опишу ситуацию более детально:
Есть два участка скрипта - первый выполняется в случае если к Самба-шаре никто не подключен, а второй, понятное дело, в случае если кто-то подключен.
Во втором участке выдаем предупреждение что мол так и так - плохие юзвери еще не поодключались, и даем выбор или остановить выполнение скрипта, или отключать юзеров, и переходить на выполнение первого участка кода.


"Переход на определенную строку (sh)"
Отправлено Ager , 19-Окт-11 15:50 
>  и переходить на выполнение первого участка кода.

оформить 'первый участок кода' как функцию ?      и вызывать её дважды


"Переход на определенную строку (sh)"
Отправлено Jinx , 19-Окт-11 15:57 
> оформить 'первый участок кода' как функцию ?      
> и вызывать её дважды

Была такая мысль, но подумал что проще будет переходить на определенные строки, что должна быть какая-то команда для перехода на нужную строку.
Похоже придется все таки сделать именно функцию.


"Переход на определенную строку (sh)"
Отправлено allez , 19-Окт-11 16:24 
>> оформить 'первый участок кода' как функцию ?
>> и вызывать её дважды
> Была такая мысль, но подумал что проще будет переходить на определенные строки,
> что должна быть какая-то команда для перехода на нужную строку.

"Команда для перехода на нужную строку" - это GOTO? Если да, то вряд ли вы такое найдете.

> Похоже придется все таки сделать именно функцию.

Именно так. Это гораздо удобнее и позволяет удержать код от превращения в "спагетти".


"Переход на определенную строку (sh)"
Отправлено Jinx , 19-Окт-11 16:24 
Сделал функцию. Вопрос закрыт.
Всем спасибо за помощь.