En mi archivo .sh no puedo invocar comandos ant o mv o cp, pero los mismos comandos se ejecutan en la terminal. A continuación está mi script
archivo sample.sh
#! /bin/sh
cp filename.so filename_org.so
android update project -p .
ant clean
ant release
ruta agregada en el archivo .bashrc.
export PATH=$PATH:/usr/bin/
cp, mv, ant solo funcionan bajo el terminal, no a través de scirpt.
android
/ant
, ¿están estos binarios en / usr / bin?Respuestas:
Como su script es un script de shell (
/bin/sh
), susPATH
entradas.bashrc
no se leerán, ya que es para el shell interactivobash
(/bin/bash
).Para que sus
PATH
entradas estén disponibles para los/bin/sh
scripts ejecutados por un usuario específico, agregue laPATH
entrada al.profile
archivo en el directorio de inicio de ese usuario.Además, puede agregar la ruta completa para cada uno de sus comandos dentro del script:
O establezca la
PATH
variable que incluye todo lo requerido$PATHS
al comienzo de su secuencia de comandos.fuente
PATH
en el lugar adecuado en lugar de.bashrc
. Cambiar el script para que sea un script bash no hará ninguna diferencia:.bashrc
solo se carga mediante shells interactivos.Tuve el mismo problema al ejecutar un binario cuya ruta se establece en bashrc.
Resolvió el problema haciendo lo siguiente:
Agregue el binario o agregue un enlace al binario en / usr / bin.
Luego verifique usando
Puede eliminar el formulario de entrada bashrc.
fuente
puede hacer una cosa simple si tiene un script pequeño y termina su trabajo lo antes posible
vaya a la línea de comando use el comando debajo
el comando anterior imprimirá la salida, incluido el uso de ruta, ese comando
fuente