break и continue используются только внутри циклов для управлениями ими. Если вы хотите прерывать выполнение скрипта когда $var не пуста, то как вариант
nihi1ist, ну, раз методом тыка, то предположу, что
if ! [ -z $var ]; then return 1; fi
должно сработать. Изначально, как я понимаю, если переменная $var пуста, то мы продолжаем выполнять функцию (программу???). Соответственно, переписываем так, что если она не пуста, то завершаем функцию.
nihi1ist, я посмотрел. И, признаться кроме описанной выше конструкции идей не пришло. Вообще, очень странно, что автор этого скрипта в двух местах использовал конструкцию с continue вне цикла. А какой пакет собирает скрипт?
nihi1ist, Чтобы знать правильный вариант, нужно знать что собственно нужно сделать - выйти, вернуть с ошибкой, прервать выполнение. И видеть нужно чуть больше кода.
return работает с функциями, то есть этот if это часть какой-то функции?
Saboteur, да, там функция. Интересно, если функция будет крутиться в цикле, то можно будет в ней использовать continue или нет?
check_feature_one() {
local var=$(get_feature_name)
local pkg=$(get_option_field $f_pkg)
local value=$(eval echo \$$var)
if [ -z $var ]; then continue; fi
if [ $value = enable ]; then
check_pkg_or_exit "$pkg"
elif [ $value = autodetect ]; then
if check_pkg "$pkg"; then
value="enable"
eval $var="enable"
else
value="disable"
eval $var="disable"
fi
fi
if [ $value = enable ]; then
add_define HAVE_$var 1
else
add_define HAVE_$var 0
fi
}