
Estou no Linux Mint 19.03.
Eu tenho um arquivo de script de shell de configuração, setup.sh
. Quando eu corro./setup.sh
muyustan@mint:~/Downloads/quartusExtracted$ ./setup.sh
bash: ./setup.sh: /bin/env: bad interpreter: No such file or directory
A coisa em setup.sh
:
#!/bin/env bash
Meu entendimento dessas coisas é muito limitado, já que sou muito novo no mundo Linux.
Eu sabia que, usar /bin/env bash
em vez de dar o caminho exato bash
era algo como "pesquisar nas variáveis de ambiente e tentar encontrar bash
". Quando procuro o /bin
diretório env
, vejo que não existe esse arquivo:
muyustan@mint:/usr/bin$ ll /bin | grep "env"
lrwxrwxrwx 1 root root 6 Mar 21 14:35 open -> openvt*
-rwxr-xr-x 1 root root 18872 Jan 22 2018 openvt*
Também,
muyustan@mint:~/Downloads/quartusExtracted$ which bash
/bin/bash
Então presumo que mudar o shebang no to setup.sh
resolverá #! /bin/bash
o problema(não tentei) porém isso não parece muito intuitivo porque se for assim então me pergunto isso
"Os desenvolvedores deste aplicativo (Quartus 13.1) cometeram um erro?", o que me leva a pensar que algo está errado com meu sistema.
Então, a questão é: por que esta é a situação?
Obrigado.
Responder1
Não há nada de errado com o seu sistema, você está apenas usando o caminho errado para env
. Em sistemas Linux, pelo menos, o env
binário normalmente está in /usr/bin
e not /bin
:
$ type env
env is /usr/bin/env
Então, seu script está dizendo ao seu sistema para usar /bin/env
, o que não existe, e é por isso que você está recebendo esse erro. Basta mudar para o shebang certo e você ficará bem:
#!/usr/bin/env bash