Обратная косая черта вне кавычек означает «интерпретировать следующий символ буквально во время синтаксического анализа». Так .
как является обычным символом для синтаксического анализатора, \.
анализируется так же, как .
и вызывает встроенную функцию (синонимом .
которой source
является bash).
Есть один случай, когда это может изменить ситуацию в этом контексте. Если пользователь определил псевдоним, вызванный .
ранее .profile
, и .profile
читается в оболочке, которая расширяет псевдонимы (что bash делает по умолчанию, только когда он вызывается в интерактивном режиме), тогда .
будет запускаться псевдоним, но \.
все равно будет запускаться встроенная функция, поскольку оболочка не пытается использовать псевдоним для слов, которые были указаны в любом случае.
Я подозреваю, что это .
было изменено, \.
потому что пользователь жаловался после того, как он сделал псевдоним для .
.
Обратите внимание, \.
что вызовет функцию с именем .
. Предположительно пользователи, которые пишут функции, более осведомлены, чем пользователи, которые пишут псевдонимы и знают, что переопределение стандартной команды в .profile
- плохая идея, если вы собираетесь включать код от третьих сторон. Но если вы хотите обойти и псевдонимы, и функции, вы можете написать command .
. Автор этого фрагмента не сделал этого ни потому, что заботился об античных снарядах, в которых не было command
встроенного, либо, скорее всего, потому, что не знал об этом.
Кстати, определение любого псевдонима в .profile
является плохой идеей, поскольку .profile
это сценарий инициализации сеанса , а не сценарий инициализации оболочки . Псевдонимы для Bash принадлежат .bashrc
.