¿Cómo crear un script que haga ejecutable otro script en la misma carpeta? No quiero preocuparme por la ruta ya que estará en el mismo directorio. Entonces debería ser algo como (estoy intentando hacer que el script D3GO sea ejecutable):
#!/bin/bash
chmod +x "$pwd"/D3GO
Soy muy nuevo en los guiones, así que no te rías: D ¡Gracias!
Respuesta1
Cuando ejecuta un bash
script, todos sus comandos se ejecutan en el directorio desde donde se invoca el script, incluido pwd
. Por ejemplo:
#!/bin/bash
pwd
Si ejecuta esto desde /whatever/path
, se mostrará /whatever/path
, sin importar dónde esté ubicado el script.
Si desea operar con archivos en el directorio desde donde ejecuta el script, puede omitirlo pwd
así:
chmod +x D3GO
Esto se interpretará como chmod +x /whatever/path/D3GO
si lo ejecutara desde /whatever/path
, sin importar dónde esté ubicado realmente el script.
Para operar en el directorio donde se encuentra el script, puede utilizar la $BASH_SOURCE
variable. Es una matriz y su primer elemento es la ruta al script en sí (es decir /script/directory/myscript.sh
). Puedes combinar esto con el dirname
comando para obtener solo el directorio:
chmod +x `dirname ${BASH_SOURCE[0]}`/D3GO
Esto buscará D3GO
en el directorio donde se encuentra este script en lugar de donde se invoca. (Gracias a @muru por señalar mi error).
Respuesta2
¡Estuviste muy cerca!
#!/bin/bash
chmod +x D3GO