Bash, лучшая логика для завершения функции, но не окончания скрипта - PullRequest
1 голос
/ 27 июня 2011

Функция вызывается несколько раз

_TestFun() {
local arg1=${1}
local arg2=${2}
local arg3=${3}
local arg4=${4}
local timearg1=${5}
local timearg2=${6}

testDATE=$(date |awk {' print $4 '}|cut -b 1-2)
 if [[ $testDATE == ${timearg1} ]] || [[ $testDATE == {timearg2} ]]; then
# exit ### I dont want to exit the script just this function if testDATE is true
 else
 continue
 fi

command1 ${arg4}" ${arg1}@${arg2} ${arg3}
}

_TestFun com1 com2 com3 com4 10 11
_TestFun com5 com6 com7 com8 20 21

Не могу понять, каким может быть ответ ....: - |

Ответы [ 2 ]

4 голосов
/ 27 июня 2011

Использование return выражение:

С man bash:

 If  the  builtin command return is executed in a function, the function
       completes and execution resumes with the next command after  the  func-
       tion  call.
1 голос
/ 27 июня 2011

Вы можете использовать оператор return в _TestFun.И измените сценарий так, чтобы он завершал вызов _TestFun

_TestFun com1 com2 com3 com4 10 11
_TestFun com5 com6 com7 com8 20 21
exit <status>;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...