LINUX.ORG.RU

Переход в начало скрипта

 


0

2

Доброго дня!
помогите с конструкцией
есть вот такой скрипт:

#!/bin/bash
cat ./text | while read line; do
одна часть скрипта

if [ -z $STRING ]; then
    echo "nothing to do"
    переход в начало цикла
    fi

еще одна часть скрипта
done;

Т.е мне нужно, если STRING равен 0, то что-бы цикл начинался заново, если нет, продолжался бы. exit прекращает работу скрипта

Я бы функциями всё оформил, чтобы не макаронить GOTO.

Radjah ★★★★★ ()
#!/bin/bash
cat ./text | while read line; do
одна часть скрипта

if [ -n "$STRING" ]; then
    echo "do someting yet more"
    еще одна часть скрипта
fi

done;
sin_a ★★★★★ ()
Ответ на: комментарий от serles

Если нет дополнительных условий, то такое решение мне кажется наиболее простым. Или я неправильно понял что нужно?

sin_a ★★★★★ ()
Ответ на: комментарий от sin_a

В Вашем случае не соблюдается самое главное условие

переход в начало цикла

serles ()

Лучше будет через while, потому что так оно обычно и случается, сначала все работает, а потом обрастает дополнительными условиями и обработками. Goto в таком ключе очень мощно блокирует любое желание дописывать скрипт в будущем.

anonymous ()

И чем тебе не угодил «else»?

#!/bin/bash
cat ./text | while read line; do
одна часть скрипта

if [ -z $STRING ]; then
    echo "nothing to do"
else
    еще одна часть скрипта
fi
done;

justAmoment ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.