o que se entende por “^ $ 1” no script de shell?

1
#!/bin/sh
#emp3.sh: using if and else 
#
if grep "^$1" /etc/passwd 2>dev/null 
then 
echo "pattern found - job over"
else 
echo "pattern not found"
fi 

no programa acima o que é "^ $ 1" e é o mesmo que "s1 / *" alguém pode explicar isso

    
por ghostloops 18.05.2015 / 16:27

1 resposta

5

grep é um programa que procura por expressões regulares. O primeiro argumento para grep é o padrão a ser procurado. Em scripts e funções $1 é uma referência ao primeiro argumento passado para esse script ou função. O ^ prefixado ao argumento é um modificador de expressões regulares padrão que corresponde ao início de uma linha - assim você pode garantir que o grep imprima apenas linhas nas quais o padrão que você está procurando é colocado imediatamente no início de uma linha. nova linha e ignorada se encontrada em outro lugar.

Por favor, note que ^ pode ter um significado alternativo de negação, embora não neste caso aqui.

    
por 18.05.2015 / 16:38