bash – El comando no se encuentra a través del script de shell pero funciona en la terminal

Pregunta:

En mi script de shell no puedo invocar comandos ant , mv o cp , pero los mismos comandos se ejecutan en la terminal. A continuación está mi guión:

archivo sample.sh

#! /bin/sh
cp filename.so filename_org.so
android update project -p .
ant clean
ant release

PATH se establece en el archivo .bashrc :

export PATH=$PATH:/usr/bin/

cp , mv , ant funcionan solo en la terminal, no a través de un script.

Respuesta:

Como su secuencia de comandos es una secuencia de comandos de shell ( /bin/sh ), sus entradas PATH en .bashrc no se leerán, ya que es para el shell interactivo bash ( /bin/bash ).

Para que sus entradas PATH estén disponibles para los scripts /bin/sh ejecutados por un usuario específico, agregue la entrada PATH al archivo .profile en el directorio de inicio de ese usuario.


Además, puede agregar la ruta completa para cada uno de sus comandos dentro del script:

/bin/cp filename.so filename_org.so

O configure la variable PATH incluyendo todos los $PATHS requeridos al comienzo de su script.

PATH=$PATH:/bin:/usr/bin:xxx
export PATH

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım