Hace poco aprendí que
. ./.a.a
Y ./.a.a
es lo mismo.
Sin embargo, intentar source source .a.a
da un error. En mi opinión, .
ser alias de Bash source
no debería comportarse de manera diferente, entonces, ¿qué me estoy perdiendo?
Bono, ¿por qué está . .
bien mientras source source
que no?
. script
y./script
son la misma cosa? Ciertamente no lo son . Además,.
no es un alias parasource
. Es al revés..
es el estándar ysource
es un alias de.
..
comando, pero quiero decir quesource
es un comando mejor, cuando vessource somefile
en un script sabes de inmediato qué hace esa declaración, pero. somefile
no solo no es obvio lo que hace, puedes perder fácilmente al.
personaje por completobash: .: .: is a directory
en. .
es ok necesidades deben ser explicadas.. ./.a.a .
ser honesto. : -DA cuestionario de algún tipo, si quieres. :-) Pregunta vinculada es increíble, muchas gracias. Lo que me dio esa idea: el hecho de que no había visto ninguna diferencia en la ejecución de archivos de esta manera y el hecho de que leí en alguna parte.
es un aliassource
. :-)Respuestas:
No se puede reemplazar
.
porsource
todas partes; Sifunciona, puede reemplazar el primero
.
(al menos en Bash):El segundo
.
representa el directorio actual, no puede reemplazarlo consource
(especialmente no./
consource
lo que ha hecho).estaría bien si tuviera un archivo llamado
source
en el directorio actual, que contiene algo significativo para su shell actual. No puedo ver cómo. .
estaría bien ...Además,
. ./.a.a
y./.a.a
no son lo mismo, la segunda forma se ejecuta.a.a
en un shell separado. Consulte ¿Cuál es la diferencia entre el abastecimiento ('.' O 'fuente') y la ejecución de un archivo en bash? para detalles.fuente
source
es una palabra clave de shell que se supone que debe usarse así:source
file
dondefile
contiene comandos de shell válidos. Estos comandos de shell se ejecutarán en el shell actual como si estuvieran escritos desde la línea de comandos. Ahora,.
file
hace exactamente lo mismo.Más allá de eso
.
solo significa "el directorio de trabajo actual" como en./xyz
("xyz
en este directorio") oa/b/./c/./d
(que es idéntico aa/b/c/d
).Más allá de eso,
.
un nombre de archivo tiene un significado solo por convención, ya.foobar
que indica un archivo "oculto" (no realmente ...) o como enfoobar.pdf
, que indica un formato de archivo con el sufijo (aquí.pdf
).Estos significados diferentes no pueden intercambiarse.
fuente
.
De ninguna manera está desactualizado. A diferencia desource
la manera portátil, definida por POSIX , de obtener un archivo. Elsource
alias es específico del shell y puede estar ausente (por ejemplo, endash
) o comportarse de manera diferente al estándar.
.