Terminal: comando anulado a través de un script de shell en / usr / local / bin no se ejecuta a menos que se llame directamente

0

He creado un script de shell que envuelve ssh para cambiar el fondo de mi terminal al conectarme a un servidor siguiendo uno de los muchos ejemplos en este sitio y stackexchange.

11:22 ~  $ echo $PATH
/opt/local/bin:/opt/local/sbin:/Volumes/Macintosh HD/Users/robertson/bin/android-sdk-macosx/platforms:/Volumes/Macintosh HD/Users/robertson/bin/android-sdk-macosx/tools:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin
11:22 ~  $ which ssh
/usr/local/bin/ssh
11:22 ~  $ whereis ssh
/usr/bin/ssh

Como puede ver, ssh encuentra correctamente el script que coloqué en / usr / local / bin, sin embargo, whereis ssh no lo hace, y cuando ejecuto ssh [email protected] , todavía obtengo el sistema ssh sin ejecutar mi envoltorio. Estoy obligado a llamarlo directamente a través de /usr/local/bin/ssh [email protected] para obtener el cambio de color.

¿Alguna idea de lo que falta aquí?

    
pregunta Sean Robertson 05.11.2014 - 17:29

1 respuesta

1

El orden de ejecución se basa en el orden PATH: primero se buscan las ubicaciones ubicadas primero, si se encuentra la coincidencia se ejecuta, SIN EMBARGO, la asignación de programas se almacena en caché, por lo que debe actualizar la memoria caché antes de que se realicen los cambios (si ha usé esa aplicación antes). Consulte enlace (punto 3.):

  

el comando hash mantiene una tabla hash, que tiene la ruta del comando utilizado   nombres Cuando ejecuta un comando, busca un comando en el   variable $ PATH. Pero si el comando está disponible en la tabla hash,   recoge desde allí y lo ejecuta. Tabla hash mantiene el número   de hits encontrados para cada comando usado hasta ahora en ese shell.

y

  

Puedes eliminar un comando en particular de una tabla hash usando la opción -d,   y la opción -r para restablecer la tabla hash completa.

Sidenote: ¿quizás intentes crear un alias en lugar de un contenedor?

    
respondido por el Marek Bettman 13.11.2014 - 11:56

Lea otras preguntas en las etiquetas