Melhorou ainda mais os agradecimentos a Kusalananda.
- O teste do conteúdo do arquivo não é necessário, pois o loop
while read
não será executado em um arquivo vazio. - Você poderia simplesmente usar
[ -s pid.txt ] || rm pid.txt
para remover o arquivo pid. No entanto, , você realmente tem um motivo para manter o arquivo após o processamento? Parece provável que você queira removê-lo independentemente.
while read -r line
do
kill "$line"
done < pid.txt
[ -s pid.txt ] || rm pid.txt
Um loop while read
está sendo usado
de for $(cat ...)
. Não leia as linhas com .
A opção -r
especifica "não permitir que as barras invertidas escapem de nenhum caractere", o que não deveria ser um problema em um arquivo de pids, mas é uma prática recomendada sempre que houver um motivo específico para não.