Em scripts de shell, existe um conceito chamado parâmetros posicionais . Essencialmente, você pode passar 'n' número de argumentos para um script de shell ou função a partir da linha de comando. Em seguida, eles são armazenados em variáveis especiais denominadas $0
, $1
, $2
e assim por diante, que são acessíveis dentro do script de shell. Um ponto a notar é que a variável $0
se refere ao próprio script.
Usando o seu script como exemplo, você pode executá-lo da seguinte maneira:
./myscript.bash /opt/src-code
Aqui, o parâmetro /opt/src-code
é armazenado na variável posicional $1
. Seu script, em seguida, reatribui esse valor a outra variável chamada path
. Então a declaração é efetivamente path=/opt/src-code
.
A variável path
é então passada para o comando grep
como seu argumento. Em seguida, ele determina onde realmente executar o comando grep e procurar por correspondências de padrões. Existe um if
especificado no seu script, que verifica se grep
retorna algum valor.
Com efeito, as etapas acima são reduzidas para o seguinte comando grep
em tempo de execução (ignorando a instrução if
):
grep -q -rHl --include \*.c --include \*.h "int main" /opt/src-code