Tengo un script que usa sh
shell. Me sale un error en la línea que usa el source
comando. Parece source
que no está incluido en mi sh
shell.
Si intento explícitamente ejecutar source
desde shell obtengo:
sh: 1: source: not found
¿De alguna manera debo instalar "fuente"? ¿Tengo una versión incorrecta de sh
?
source
es una "versión incorrecta".source: not found
significa que elsource
comando se evaluó correctamente, pero el archivo que debería haber leído no existe.source
porque es una característica del shell. No se puede implementar como un comando externo.Respuestas:
/bin/sh
Por lo general, es otro shell que intenta imitar The Shell. Muchas distribuciones usan/bin/bash
parash
, es compatiblesource
. En Ubuntu, sin embargo,/bin/dash
se usa lo que no es compatiblesource
. La mayoría de los proyectiles usan en.
lugar desource
. Si no puede editar el script, intente cambiar el shell que lo ejecuta.fuente
/bin/sh
llamadas/bin/dash
. Tradicionalmente, se/bin/sh
llama/bin/bash
modo de compatibilidad sh.SHELL := /bin/bash
a la parte superior de mi Makefile.En Bourne shell (sh), use el. comando para obtener un archivo
fuente
source
no es estrictamentesh
.. ./filename
. De lo contrario, obtendría unsh: 1: .: filename: not found
error al ejecutar pruebas en Travis-CI.Entonces estará bien
fuente
dpkg-reconfigure
podría no ser accesible para todos los usuarios, especialmente en sistemas que no están basados en Debiansource: not found
errores con antiguos clientes de telnet después de la actualización de Debian, gracias.La
source
construcción es un bashismo. Escribe esto simplemente como en su.
lugar.p.ej
fuente
Este problema ocurre porque jenkins Execute Shell ejecuta el script a través de su / bin / sh
En consecuencia, / bin / sh no conoce "fuente"
Solo necesita agregar la línea a continuación en la parte superior de su Shell de ejecución en jenkins
fuente
El
source
comando está integrado en algunos proyectiles. Si tiene un script, debe especificar qué shell usar en la primera línea, como:fuente
Enfrenté este error mientras intentaba llamar al comando de origen desde #Jenkins execute shell.
source profile.txt
osource profile.properties
El reemplazo para el comando fuente es usar,
. ./profile.txt
o. ./profile.properties
Nota: hay un espacio entre los dos puntos (.)
fuente
Encontré en un Makenile GNU en Ubuntu, (donde / bin / sh -> bash)
Necesitaba usar el. comando, así como especificar la secuencia de comandos de destino con un prefijo ./ (ver ejemplo a continuación)
fuente no funcionó en este caso, no estoy seguro de por qué, ya que debería estar llamando a / bin / bash ..
Mi variable de entorno SHELL también está establecida en / bin / bash
Tenga en cuenta que esta muestra no incluye el carácter de tabulación; tuvo que formatear para el intercambio de pila.
fuente
source es un comando incorporado de bash, por lo que para ejecutar el comando source, puede iniciar sesión como Root.
sudo -s source ./filename.sh
fuente
En Ubuntu, en lugar de usar sh scriptname.sh para ejecutar el archivo, lo he usado. scriptname.sh y funcionó! La primera línea de mi archivo contiene:
#!/bin/bash
usa este comando para ejecutar el script
fuente
Esto puede ayudarlo, recibí este error porque estaba intentando volver a cargar mi
.profile
con el comando. .profile
y tenía un error de sintaxisfuente
Bourne shell (sh) usa PATH para ubicarse
source <file>
. Si el archivo que está intentando obtener no está en su ruta, aparece el error 'archivo no encontrado'.Tratar:
fuente
sh: 1: source: not found
nofile not found