/bin/env: intérprete ruim

/bin/env: intérprete ruim

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 bashem vez de dar o caminho exato bashera algo como "pesquisar nas variáveis ​​de ambiente e tentar encontrar bash". Quando procuro o /bindiretó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.shresolverá #! /bin/basho 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 envbinário normalmente está in /usr/bine 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

informação relacionada