Еще одна вещь, которой я не верю, была поднята: функция выполняется в контексте процесса вызова, тогда как сценарий разветвляет новую оболочку.
Это могло быть важно для производительности - функция быстрее, так как она не делает fork()
и exec()
. При нормальных обстоятельствах различие тривиально, но если Вы отлаживаете систему, которая является вне памяти и является перегрузкой страницы, это могло иметь большое значение.
Кроме того, если Вы хотите изменить свою текущую среду оболочки, необходимо использовать функцию. Например, функция могла изменить поиск команды $PATH
для текущей оболочки, но сценария не может, потому что она воздействует на копию ветвления/должностного лица $PATH
.
Это, кажется, проблема с DNS, потому что строка после числа HWaddr пропущена.