-
Não coloque comandos dentro de colchetes. Para fazer um loop enquanto
grepé bem-sucedida (ou seja, até falhar), apenas façawhile grep ... do ︙ done -
Para fazer um loop enquanto
grepfalhar (ou seja, até que seja bem-sucedido), façawhile ! grep ... do ︙ donecom espaço em branco (ou seja, um ou mais espaços e / ou tabulações) entre o
!e o comando. -
Você deve sempre citar suas referências de variáveis de shell (por exemplo,
"$path") a menos que você tenha uma boa razão para não e você tem certeza de que sabe o que está fazendo. Por outro lado, enquanto chaves podem ser importantes, eles não são tão importantes quanto as citações então"$text"e"$path"são bons o suficiente (você não precisa usar"${text}"e"${path}", neste contexto).… a menos que
pathpossa ser definido para uma lista de nomes de arquivos, nesse caso, veja Implicações de segurança do esquecimento de citar uma variável em shells bash / POSIX - Mas e se…? -
Você não precisa do ponto-e-vírgula (
;) no final da linhawhile(a menos que você coloque ododepois dele). Em outras palavras, a linhawhilee ododevem ser separados por um ponto e vírgula e / ou uma ou mais novas linhas.