Por que o 'bash command' falha em executar?

2

Por que o bash <command> não é executado?

$ bash date
/bin/date: /bin/date: cannot execute binary file

$ /bin/date
Fri Mar 18 05:59:24 EDT 2016

$ bash -c date
Fri Mar 18 06:00:39 EDT 2016
    
por Tim 18.03.2016 / 11:01

2 respostas

10

Do manual :

If arguments remain after option processing, and neither the -c nor the -s option has been supplied, the first argument is assumed to be the name of a file containing shell commands.

Portanto bash date significa "leia o arquivo date e execute os comandos do shell que ele contém". Supondo que não exista nenhum arquivo date no diretório atual, bash procura o caminho e encontra /bin/date , que é um binário em vez de um script de shell, daí o erro.

    
por 18.03.2016 / 11:05
2

Sem -c bash tenta executar o argumento como seu script. O /bin/date não é um script bash , por isso falha.

    
por 18.03.2016 / 11:07

Tags