As invocações shebang são detectáveis?

3

Existe uma maneira de um script bash detectar se ele está sendo executado por meio do #!/usr/bin/env shebang?
Alguma mágica foo foo que me deixaria escrever:

#!/bin/bash
...
if [ __INVOKED_VIA_USR_BIN_ENV__ ]; then 
  ...
    
por aefxx 25.05.2014 / 01:25

1 resposta

3

O última coisa que env (do coreutils) faz é

execvp (argv[optind], &argv[optind]);

Isso significa que env é substituído pelo outro programa, por isso não é possível detectar quem o iniciou. Você pode encontrar mais informações na página do manual execvp .

    
por 25.05.2014 / 02:37