Проблема в том, что вы сделали псевдоним для вашей фактической оболочки. Когда вы используете BackTicks (или $ (...)
), вы запускаете подколочку, который игнорирует ваш псевдоним (псевдоним afaik не может быть экспортирован, поэтому вам придется повторно определить их в подколочка).
В вашем случае, возможно, лучший подход будет установить переменную, содержащую команду. Скажем:
MY_GREP="grep -n"
out=`${MY_GREP} word $1`
Похоже, что в исходном коде Apache вы ищете модули/http/http_protocol.c
. Смотрите, например, get_canned_error_string()
. (ЗАМЕЧАНИЕ: Это с беглого взгляда, я не изучал исходники глубоко и не собирал/тестировал Apache с модифицированными сообщениями об ошибках)
Но на самом деле, нет ничего особенно неэффективного или медленного в использовании ErrorDocument
, тем более, что ошибки не должны быть на "горячем пути". (То есть огромное большинство обращений к вашему серверу не должно приводить к ошибкам).