Eu instalei mill
no arch linux com fish como meu shell padrão. Como o arquivo /usr/bin/mill
não inicia com um shebang, o fish não executará o arquivo. Em vez disso, ele responde com
$ mill
Failed to execute process '/usr/bin/mill'. Reason:
exec: Exec format error
The file '/usr/bin/mill' is marked as an executable but could not be run by the operating system.
Eu posso executar o mill com, bash -c 'mill'
mas não quero fazer isso o tempo todo. Nem quero adicionar isso como um alias apenas para mill. É possível configurar o fish para sempre usar sh ou bash quando não houver um shebang no script em vez de falhar? Ou talvez haja um problema no nível do sistema operacional?
edit: Mill é apenas um exemplo. Eu encontrei esse recurso de peixe várias vezes com scripts diferentes que eu não deveria estar editando. É por isso que estou procurando uma maneira de evitar para sempre o recurso, não uma correção única para apenas o moinho.
Você não pode fazer isso.
Você pode verificar seu código-fonte :
Observe como está usando
execve
(notexecvp
ouexeclp
, que tem um fallback para/bin/sh path
no caso deENOEXEC
) e ele só executará o script com/bin/sh
se começar com:
(em si um recurso bastante duvidoso; especialmente porquefish
também o usará no caso de erros outros do queENOEXEC
).Mas se você pode editar o script para adicionar um
:
no início, você também pode editá-lo para adicionar um she-bang adequado.