Iniciando o bash de / usr / bin / env ou / bin [duplicado]

0

Qual seria aconselhado como a primeira linha em um script bash:

#! /usr/bin/env bash

ou

#! /bin/bash
    
por Mausy5043 05.04.2014 / 13:59

2 respostas

2

Como regra geral, usar env é mais portável. É improvável, mas teoricamente concebível, encontrar um sistema que não tenha bash at /bin/bash . Também é possível que o usuário que está executando o script tenha sua própria versão bash que é de alguma forma diferente.

Usar env significa que a primeira bash instância no caminho do usuário será escolhida. Isso significa que #!/usr/bin/env bash sempre funcionará com a versão bash escolhida pelo usuário e sempre deverá ser avaliada como bash disponível, mesmo em sistemas não padrão. Isso se torna muito mais importante se você estiver usando outro interpretador, e não bash. O Perl, por exemplo, pode ser instalado em locais diferentes em sistemas diferentes, mas env o encontrará independentemente.

Portanto, usar #!/usr/bin/env PROGRAM é um bom hábito, pois torna seus scripts mais portáveis para diferentes versões * nix.

    
por terdon 05.04.2014 / 19:20
1

Se você tiver versões do server do bash instaladas (possíveis), usar #!/usr/bin/env bash garantirá que o bash usado seja o primeiro no $PATH do seu ambiente.

Usar #!/bin/bash será codificar o binário armazenado em #!/bin .

Consulte: Questão semelhante sobre SO

    
por jobin 05.04.2014 / 14:04