cómo ejecutar un script bash sin escribir ./

cómo ejecutar un script bash sin escribir ./

Me ha estado molestando durante mucho tiempo y estoy realmente harto de ello. Por ejemplo, hay un script llamado testscript que compara dos directorios. En clase el profesor puede simplemente escribir

testscript dir1 dir2

para obtener el resultado, pero tengo que agregar ./ ​​antes del testscript y presionar enter. Luego ingrese dir1 y dir2 en la siguiente línea

¿Cómo hizo eso el profe? ¿Es algo relacionado con bashrc? Nunca entiendo cómo funciona. Si está relacionado, explíquelo en un lenguaje sencillo ya que soy nuevo en Linux. ¡Gracias!

Respuesta1

Necesita agregar el directorio con su script a la PATHvariable:

export PATH="$PATH:/path/to/dir"

o incluso puedes agregaractualdirectorio a PATH:

export PATH="$PATH:."

Este último tiene algunosinconveniente de seguridadaunque.

Respuesta2

Otra forma de hacer esto es agregar un alias en su archivo bashrc:

vim ~/.bashrc

Así es como se ve mi archivo bashrc:

# .bashrc

alias coredb='psql -h 172.x.x.x -U jboss jbossdb'
alias psql='psql -h 172.x.x.x -U rkah portal_db'
alias opendb='psql -h 172.x.x.x -U rkah portal_db'


# Source global definitions

if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions
alias menu='bash ./menuScript.sh'
alias vi='vim'

Si miras donde dice alias, así es exactamente como puedes agregarlo. Entonces, por ejemplo, ingresarías:

alias testscript='bash ./testscript.sh'

Respuesta3

Debes poner la siguiente línea al final de tu .bashrcarchivo:

PATH=$PATH:.    

Para hacerlo puedes escribir este comando:

echo "PATH=$PATH:." >> ~/.bashrc    

Luego deberías iniciar un nuevo shell para que funcione.

Respuesta4

Otra alternativa que podría considerar es recopilar esos programas y scripts ejecutables especiales en un directorio y colocarlos en la declaración PATH. Así no tendrías que utilizar el temido '.' (punto) en la variable PATH pero aún así haría lo que quisieras.

información relacionada