У меня есть 2 вопроса:
1) с этой многострочной bash функцией:
somefunction() {
do some stuff
innerfunction() {
do some stuff
return 1
}
do more stuff
}
Проблема здесь в том, что когда сценарий входит во внутреннюю функцию и возвращается, внешний (оригинал) продолжает выполняться, что не должно (когда-то возвращаться), я не знаю почему.
2) Если я объявляю однострочную функцию, скажите:
$ func() { faill() { echo fail; return 1 } echo abc }
Я делаю не знаю, стоит ли ставить точку с запятой после последнего оператора во внутренней функции (последнее выражение - return 1
), но когда я нажимаю клавишу ввода, чтобы сохранить функцию, она все еще ждет конца (поэтому я должен sigterm'd его). если я сделаю
$ func() { faill() { echo fail; return 1; } echo abc; }
То есть - добавьте точку с запятой после return 1
и echo abc
- тогда bash: syntax error near unexpected token 'echo'
Так что некоторые могут дать подсказку о том, как интерпретирует bash точка с запятой (хотя я ;
== \n
)