В давние времена
многоархитектурных Unix-окружений разработчики дистрибутивов не могли прийти к единому мнению о том, что должно быть в
$PATH
. Базовые вещи, вроде
/bin
и
/usr/bin
, были везде одинаковыми, но у каждого дистрибутива был собственный набор дополнительных директорий (
у Solaris их, например, было много). Кроме того — у разных локальных вычислительных групп было различное видение того, где должны размещаться локальные программы. Например — в
/usr/local/bin
, в
/local/bin
, в
/opt/<something>/bin
, в
/<group>/bin
и так далее. Всё это усложняло мне жизнь, так как я занимался
поддержкой общего набора dot-файлов, используемых во всех Unix-системах, за которые я отвечал, и мне не хотелось бы, чтобы моя переменная
$PATH
представляла бы собой огромный список, содержащий пути ко всем необходимым директориям каждой из систем. Поэтому мне нужно было убирать всё лишнее из гигантского базового списка директорий, которые могли присутствовать в
$PATH
, оставляя там лишь те директории, которые существовали в текущей системе. А чтобы ещё сильнее усложнить эту задачу, мне хотелось использовать для этого только команды, встроенные в оболочку, и это — при работе с
оболочкой, где
test
встроенной командой не является.