Como fazer um script que tornará executável outro script na mesma pasta?

Como fazer um script que tornará executável outro script na mesma pasta?

Como fazer um script que tornará executável outro script na mesma pasta? Não quero me preocupar com o caminho, pois estará no mesmo diretório. Então deveria ser algo como (estou tentando tornar o script D3GO executável):

#!/bin/bash    

chmod +x "$pwd"/D3GO

Sou muito novo em scripts, então por favor não ria: D Obrigado!

Responder1

Quando você executa um bashscript, todos os seus comandos são executados no diretório de onde o script é invocado, incluindo pwd. Por exemplo:

#!/bin/bash

pwd

Se você executar isso /whatever/path, ele será exibido /whatever/path, não importa onde o script esteja colocado.

Se quiser operar em arquivos no diretório onde você está executando o script, você pode omitir pwdassim:

chmod +x D3GO

Isso será interpretado como chmod +x /whatever/path/D3GOse você o executasse /whatever/path, não importa onde o script esteja realmente colocado.

Para operar no diretório onde o script está localizado, você pode usar a $BASH_SOURCEvariável. É um array e seu primeiro elemento é o caminho para o próprio script (ou seja /script/directory/myscript.sh,). Você pode combinar isso com o dirnamecomando para obter apenas o diretório:

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

Isto irá procurar D3GOno diretório onde este script é colocado, em vez de onde ele é invocado. (Obrigado a @muru por apontar meu erro.)

Responder2

Você estava super perto!

#!/bin/bash    

chmod +x D3GO

informação relacionada