Permissão de script Bash negada & Bad Interpreter

8

Estou em um kali linux de 64 bits.

Eu criei um script python que leva 2 argumentos para iniciar. Eu não quero digitar todas as vezes exatamente os mesmos caminhos ou pesquisar no histórico dos comandos que usei no terminal. Então eu decidi criar um script simples que chama o script python com seus argumentos.

#! /bin bash

python CreateDB.py ./WtfPath ./NoWtfPath/NewSystem/

É exatamente o mesmo comando que eu usaria no terminal. No entanto, recebo uma mensagem de erro quando tento executar o arquivo de script.

bash: ./wtf.sh: /bin: bad interpreter: Permission denied

wtf.sh tem direitos executáveis.

O que está errado?

    
por Davlog 13.07.2014 / 20:53

2 respostas

9

Você tem um espaço em vez de uma barra aqui:

#! /bin bash

Deve ser:

#! /bin/bash

ou simplesmente

#!/bin/bash

(o primeiro espaço é opcional). O shebang ( #! ) deve ser seguido pelo caminho para um executável , que pode ser seguido por um argumento , por exemplo,

#!/usr/bin/env sh

Nesse caso, /usr/bin/env é o executável; veja man env para detalhes.

Apenas /bin refere-se a um diretório.

    
por 13.07.2014 / 21:01
1

Vale a pena notar que, se o ponto de montagem no qual o seu script reside tiver o atributo 'noexec', você poderá definir tudo o que quiser e ainda não funcionará, mas invocar o interpretador com o script como um argumento ( desde que, por sua vez, não tente executar outro script em uma montagem noexec).

    
por 23.11.2016 / 07:42