Isso porque eagle
é um executável compilado, não um script bash. Você está ficando confuso porque geralmente vê o bash ./script
sugerido como uma maneira de executar o script bash salvo no arquivo de texto script
. Por exemplo:
$ cat foo.sh
echo "hello!"
$ bash ./foo.sh
hello!
Portanto, o comando bash ./foo.sh
significa "execute bash
e peça para executar os comandos encontrados no arquivo foo.sh
". No entanto, executáveis binários não são scripts de shell, eles não são uma lista de comandos simples e não podem ser executados dessa maneira. Por exemplo, se você tentar executar o binário ls
usando bash
:
$ bash /bin/ls
/bin/ls: /bin/ls: cannot execute binary file
Isso é bash
dizendo a você que não pode executar essa coisa que você disse para executar porque é um arquivo binário e não um arquivo de texto contendo um script.
Portanto, para corrigir o seu problema, basta remover o bash
do seu alias e, em vez disso, apontá-lo para a localização real do executável eagle
:
alias eagle='/home/metin/eagle-7.6.0/bin/eagle'
Como alternativa, adicione /home/metin/eagle-7.6.0/bin/
ao seu $PATH
adicionando esta linha ao seu ~/.bashrc
:
PATH="$PATH:/home/metin/eagle-7.6.0/bin/"
Isso permitirá que você execute quaisquer arquivos executáveis em /home/metin/eagle-7.6.0/bin/
pelo nome (executando eagle
neste caso) como faria com qualquer outro executável, como bash
, ou ls
.