Tengo un script de shell simple:
#!/bin/bash
echo test
Puedo ejecutar el script con éxito como:
./test.sh
y
source ./test.sh
Sin embargo, lo siguiente arroja un error:
. ./test.sh
error:
.: Command not found.
¿Qué podría estar causando el error? Esto funciona en el Capitán pero no en la sierra.
Estoy ejecutando macOS 10.12.3 con el terminal predeterminado.
¡Gracias!
EDITAR: He reescrito la pregunta para simplificarla con un pequeño script de prueba en lugar de mi script de producción real. Esto demuestra que el problema es el entorno de ejecución en lugar del script.
terminal
command-line
csilk
fuente
fuente
.
es lo mismo quesource
(ver ss64.com/bash/source.html ). Intenta llamar al script consource ./script.sh
Y ver si funciona. Es probable que el script tenga esa restricción porque está configurando valores para que sean usados por otros comandos. Sisource
también falla, ¿qué shell estás usando? ¿Y qué aplicación de terminal y versión específica de macOS?Respuestas:
Resulta que mi shell por defecto estaba configurado a CSH que no es compatible con:
He cambiado el shell predeterminado para bash y esto ahora funciona. Creo que el shell predeterminado cambió cuando mi empresa creó una imagen del MacBook o ahora es el predeterminado con una instalación nueva de Sierra.
Aceptaré esto como la respuesta después del período de espera de 2 días de intercambio.
fuente
bash
. Si la Terminal estaba configurada encsh
, no estaba usando su shell por defecto y tuvo que haber sido modificado por alguien que no sea Apple. Si no lo hiciste, entonces, según lo que dijiste, era la compañía para la que trabajas.