cómo ejecutar un script de shell desde cualquier directorio

cómo ejecutar un script de shell desde cualquier directorio

Escribí un script simple con la extensión .shen mi directorio de inicio que puedo ejecutar directamente en mi directorio de inicio, pero quiero ejecutar el script desde todos los directorios en los que estoy. ¿Qué debo hacer?

Respuesta1

De forma interactiva, siempre puede ejecutar sus scripts escribiendo ~/yourscript.shen la línea de comando, pero eso es muy limitante, especialmente si desea escribir más scripts que llamen a los scripts que ya ha escrito.

Un enfoque más integrado y flexible implica colocar todos sus scripts en un directorio y agregar ese directorio a su PATHvariable de entorno.

Después de hacer eso, podrá escribir yourscript.shy, sin importar en qué directorio se encuentre, el shell encontrará su script y lo ejecutará.

Así es como se suele hacer:

  1. Cree un bindirectorio en su directorio de inicio y coloque mvsus scripts en él.
  2. Cambie todos los scripts a ejecutables ( chmod +x).
  3. Asegúrese de que su PATHvariable de entorno contenga su $HOME/bindirectorio. En algunos sistemas, el valor predeterminado ~/.profileagregará su $HOME/bindirectorio automáticamente PATH, así que verifíquelo ~/.profileantes de modificarlo.

Permítanme ilustrarlo con un guión:

mkdir ~/bin
mv ~/*.sh ~/bin
chmod +x ~/bin/*
if ! grep 'PATH=.*HOME/bin' ~/.profile
then
    echo 'export PATH="$HOME/bin:$PATH"' >> ~/.profile
fi
. ~/.profile
echo "$PATH"      # you should see your bin directory
cd /tmp           # change to another random directory
type myscript.sh  # see if the shell finds your scripts

Si ve su bindirectorio en su PATH, entonces es una buena idea cerrar sesión, volver a iniciarla, cambiar a otro directorio y ejecutar type yourscript.shnuevamente para asegurarse de que todo esté configurado correctamente.

información relacionada