Una barra invertida fuera de las comillas significa "interpretar el siguiente carácter literalmente durante el análisis". Dado que .
es un carácter ordinario para el analizador, \.
se analiza de la misma manera .
e invoca el incorporado .
(del cual source
es sinónimo en bash).
Hay un caso en el que podría hacer una diferencia en este contexto. Si un usuario ha definido un alias llamado .
anteriormente .profile
y .profile
se está leyendo en un shell que expande los alias (que bash solo lo hace de manera predeterminada cuando se invoca de forma interactiva), entonces.
activaría el alias, pero \.
aún activaría el builtin, porque el shell no intenta la expansión de alias en palabras que fueron citadas de ninguna manera.
Sospecho que .
se cambió a \.
porque un usuario se quejó después de haber hecho un alias para.
.
Tenga en cuenta que \.
invocaría una función llamada .
. Presumiblemente, los usuarios que escriben funciones tienen más conocimiento que los usuarios que escriben alias y sabrían que redefinir un comando estándar .profile
es una mala idea si se va a incluir código de terceros. Pero si desea omitir ambos alias y funciones, puede escribir command .
. El autor de este fragmento tampoco hizo esto porque se preocupaba por las conchas antiguas que no teníancommand
incorporado, o más probablemente porque no lo sabían.
Por cierto, definir cualquier alias en .profile
es una mala idea porque .profile
es un script de inicialización de sesión , no un script de inicialización de shell . Los alias para bash pertenecen .bashrc
.
Gilles 'SO- deja de ser malvado'
fuente