comando fuente no encontrado en sh shell

Resuelto Milad asked hace 11 años • 14 respuestas

Tengo un script que usa shshell. Recibo un error en la línea que usa el sourcecomando. Parece que sourceno está incluido en mi shcaparazón.

Si intento ejecutar explícitamente sourcedesde Shell obtengo:

sh: 1: source: not found

¿Debo instalar de alguna manera "fuente"? ¿ Tengo una versión incorrecta de sh?

Milad avatar Dec 04 '12 19:12 Milad
Aceptado

/bin/shsuele ser algún otro shell que intenta imitar The Shell. Muchas distribuciones /bin/bashlo utilizan shy lo admiten source. Sin embargo, en Ubuntu /bin/dashse utiliza el archivo que no es compatible source. La mayoría de los shells usan .en lugar de source. Si no puede editar el script, intente cambiar el shell que lo ejecuta.

choroba avatar Dec 04 '2012 12:12 choroba

En Bourne shell(sh), utilice el archivo . comando para obtener un archivo

. filename

En ciertos sistemas operativos/entornos (Mac OS, Travis-CI, Ubuntu, al menos) esto debe ser:

. ./filename

(Crédito al comentario de Adrien Joly a continuación )

Guru avatar Dec 04 '2012 12:12 Guru
$ls -l `which sh`
/bin/sh -> dash

$sudo dpkg-reconfigure dash #Select "no" when you're asked
[...]

$ls -l `which sh`
/bin/sh -> bash

Entonces todo estará bien

shlsy avatar Jan 07 '2014 06:01 shlsy

El sourceincorporado es un bashismo. Escribe esto simplemente como .en su lugar.

p.ej

. $FILE

# OR you may need to use a relative path (such as in an `npm` script):

. ./$FILE

https://wiki.ubuntu.com/DashAsBinSh#source

Travis Clarke avatar Jul 13 '2017 19:07 Travis Clarke