¿Cómo crear un script que haga ejecutable otro script en la misma carpeta?

¿Cómo crear un script que haga ejecutable otro script en la misma carpeta?

¿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 bashscript, 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 pwdasí:

chmod +x D3GO

Esto se interpretará como chmod +x /whatever/path/D3GOsi 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_SOURCEvariable. 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 dirnamecomando para obtener solo el directorio:

chmod +x `dirname ${BASH_SOURCE[0]}`/D3GO

Esto buscará D3GOen 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

información relacionada