Ejecute el script sin ./ antes del nombre

Ejecute el script sin ./ antes del nombre

Estoy ejecutando un script bastante complicado que cambia directorios y ejecuta muchos otros comandos. Todos estos comandos se ejecutan usando 'scriptname', que funciona bien cuando ejecuto el script principal desde mi terminal. Sin embargo, a veces tengo que ingresar a un servidor y ejecutar el script principal desde allí, pero falla porque no hay un ./ antes de cada comando.

Prefiero no revisar todos los scripts y ejecutables y agregar un ./ a los comandos, entonces, ¿hay otra forma de resolver este problema?

Respuesta1

Hay formas de cambiar este comportamiento, incluida la adición ./de la variable de entorno PATH, pero esto introduce un grave riesgo de seguridad para su entorno. La forma en que están escritos los scripts es realmente incorrecta y la solución correcta es revisarlos todos y corregir la forma en que se llaman los scripts locales. Esta es la única solución adecuada que no introducirá problemas adicionales en el futuro ni creará problemas de seguridad. Sé que no es lo que tubuscadoescuchar, pero hacer el esfuerzo y hacerlo bien.

Respuesta2

Si sus scripts se encuentran en /opt/housekeeping/bin, le sugiero que agregue

export PATH=$PATH:/opt/housekeeping/bin  

a su .bash_profile o .profile o cualquiera que sea su script de inicio de sesión que utilice y asegúrese de que el permiso 755 también esté configurado en esos scripts.

Respuesta3

puedes crear un alias para tu script:

alias scriptfile="./scriptfile"

información relacionada