Если вы используете set -e
, вы должны быть осторожны как внутри, так и снаружи.
С помощью set -e
оболочка в основном переводит
foo || bar
в
(set +e; foo) || bar
именно потому, что она должна видеть код выхода с конца функции.
Исправление должно быть таким же осторожным в определении функции.
# Renamed the function to as to avoid shadowing the test built-in
nst () {
false || return
echo "This should not be printed!"
}
Так как Вы основываете свою работу над исходной работой LGPL, мне кажется, что Ваша работа является производной оригинала, и так разделите 2 из лицензии, применяется: Ваш код должен быть LGPL или, в Вашей опции, GPL. (Формулировка отличается в версиях 2 и 3, но это - тот же раздел.), Но я - просто программист, поэтому что я знаю? Вы задаете вопрос о законе, таким образом, Ваш лучший план действий должен спросить адвоката.
Я полагаю, что необходимо использовать LGPL:
http://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License#Differences_from_the_GPL
Это зависит от того, является ли Ваш порт производной работой (обычно порт == производная работа).