O primeiro comando é o correto (desde que o script esteja no diretório atual).
O terceiro comando está distante. O segundo fará o mesmo que o primeiro.
O script está sendo executado: isso não é um erro sobre não conseguir executar o script. Algum comando no script está falhando. Mas isso é tudo que posso dizer, porque não sei o que está no script.
Você não precisa torná-lo executável para executá-lo como sh script_name
. Se tiver uma primeira linha iniciando #!…
, ela será projetada para ser executada e executada como ./script_name
.
Se o script depender de extensões bash
(ou outras shell avançadas). Então, ele pode não ser executado em sh
Para depurar um script (se for um script bash), você pode executá-lo como bash -x script_name
Recomenda-se não ter extensões no executável: se você fosse reescrever em python, ou C, teria que renomeá-lo. Isso não é um bom pensamento. (se um arquivo é executável, então é executável. Ele é responsável por selecionar seu próprio interpretador (veja #!
)).