Diferencia entre nombre de archivo y. nombre de archivo en terminal macOS

3

Soy novato en MacOS. (Estoy usando mac OS high sierra 10.13.6) Instalé un software. Dijeron que inicializaran el software por

. /path/setsas.sh

No he pensado en hacerlo. y el espacio, así que acabo de correr

ruta / setsas.sh

Pareció funcionar, pero después de eso no pude ejecutar ningún comando del software. Descubrí que debería haber ejecutado el comando tal como estaba, y después de eso estuvo bien. Entonces, ¿qué estas. y espacio significa aquí, y ¿adivina por qué no pude ejecutar ningún comando al principio aunque el archivo parecía ejecutarse? Yo sé eso . a veces se refiere a la carpeta actual, pero en este caso no lo parece.

    
pregunta Septacle 13.09.2018 - 02:00

2 respuestas

3

. /path/setsas.sh carga las variables y funciones del script en su sesión de shell actual. Es lo mismo que ejecutar source /path/setsas.sh . Ejecutar path/setsas.sh por otro lado genera un nuevo proceso. Las variables y funciones no serán accesibles desde su shell actual. Es por eso que los comandos no estaban funcionando para ti.

    
respondido por el Jason Manuta 13.09.2018 - 07:54
-2

Cuando "simplemente ingresa un comando", OS / X (como cualquier Unix / Linux) usa la variable de entorno $PATH para especificar las ubicaciones que se buscarán para encontrar, a menos que sea un comando incorporado de bash / shell.

Cuando especifica ./command , es una referencia explícita a un archivo en particular en un directorio en particular: "el 'actual'." $PATH no se usa, y el comando no se considera "incorporado".

Del mismo modo, ~/command es una referencia explícita, esta vez usando "~" como acceso directo a "mi directorio principal". Una vez más, no se usa $PATH .

(Unrelated ...) El comando source shell requiere una referencia específica a un archivo, y hace que el shell lea y ejecute todos los comandos en ese archivo. (Por ejemplo, si cambia su archivo de "perfil bash" y desea incorporarlo nuevamente sin iniciar sesión, esta es una forma de hacerlo).

    
respondido por el Mike Robinson 14.09.2018 - 16:30

Lea otras preguntas en las etiquetas