Qual é o significado de $ 0 no shell Bash?

1

Do manual de bash

$0 Expands to the name of the shell or shell script. This is set at shell initialization.

If Bash is invoked with a file of commands (see Section 3.8 [Shell Scripts], page 39), $0 is set to the name of that file.

If Bash is started with the -c option (see Section 6.1 [Invoking Bash], page 80), then $0 is set to the first argument after the string to be executed, if one is present.

Otherwise, it is set to the filename used to invoke Bash, as given by argument zero.

Eu entendo os dois primeiros casos, mas não o último. O que "de outra forma" e "o nome do arquivo usado para invocar o Bash" significa especificamente?

    
por Tim 01.05.2016 / 22:57

1 resposta

6

Bash pode ser invocado de várias maneiras, incluindo diretamente usando seu executável ( /bin/bash ) ou um link para ele; esse é geralmente o caso de /bin/sh . "Caso contrário" abrange este caso, e o nome do arquivo usado para invocar o Bash é apenas isso - bash , sh , /bin/sh etc.

Experimente e você verá: bash , em seguida, echo $0 imprime bash , /bin/bash , em seguida, echo $0 imprime /bin/bash , etc.

Indiscutivelmente, isso também abrange os shebangs, mas talvez seja o primeiro caso.

    
por 01.05.2016 / 23:08

Tags