Se for um script sh
- como em, ele referencia explicitamente #!/bin/sh
- que ainda pode ser bash
, mas seria como invocá-lo com --posix --no-rc --no-profile
-, você pode especificar o arquivo ENV
com a variável de ambiente ENV
:
ENV=/path/to/rcfile sh
Variáveis específicas precisam ser declaradas na linha de comando - como acima para $ENV
- ou então com export
. Por exemplo, para $PATH
você faz:
export "PATH=$PATH:/some/more/paths"; sh
A variável $BASH_ENV
que você faz referência não é um arquivo que precisa ser originado - e não é interpretado de qualquer maneira quando bash
é invocado como sh
-, mas é um caminho para um arquivo originado quando bash
shell não interativo é invocado - como com um script que especifica o:
#!/bin/bash
... ou qualquer outra linha bang.
Outra maneira de invocar seu script / shell é com o utilitário env
. Ele pode ser usado para remover explicitamente valores do ambiente ou, como normalmente é mais fácil, para limpá-los desde o início:
env - BASH_ENV=/path/to/rcfile /usr/bin/bash /some/script/file
Isso dirá a env
para invocar o comando /usr/bin/bash
- com todos os seus argumentos anexados - com a variável de ambiente $BASH_ENV
especificada, mas de outra forma com um ambiente limpo inteiramente.