O que significa o par de parênteses após uma string literal?

1

Eu acidentalmente introduzo o seguinte comando no terminal do Bash:

exit()

E o Bash continua lendo a próxima linha até que eu introduza um literal de string e o Bash dê o erro de "-bash: erro de sintaxe próximo ao token inesperado".

Então eu testo algumas outras entradas similares como:

foobar ()

O Bash dá a saída similar. O seguinte é o resultado que obtive:

~ $ foo ()
> bar
-bash: syntax error near unexpected token 'bar'

Alguém pode explicar por quê? Eu só sei que os parênteses são usados para criar matrizes ou subcasas. Eu não sei o que isso realmente faz.

    
por moleculea 24.11.2013 / 06:58

1 resposta

4

Essa é a sintaxe para definir uma função de shell. Consulte a seção Funções da Shell do Bash manual . Começa:

Shell functions are a way to group commands for later execution using a single name for the group. They are executed just like a "regular" command. When the name of a shell function is used as a simple command name, the list of commands associated with that function name is executed. Shell functions are executed in the current shell context; no new process is created to interpret them.

Functions are declared using this syntax:

name () compound-command [ redirections ]

Espera que você digite um comando composto. Por exemplo:

$ foo()
> {
> echo 'you said foo'
> }
$ foo
you said foo
    
por 24.11.2013 / 07:06

Tags