Melhorou ainda mais os agradecimentos a Kusalananda.
- O teste do conteúdo do arquivo não é necessário, pois o loop
while readnão será executado em um arquivo vazio. - Você poderia simplesmente usar
[ -s pid.txt ] || rm pid.txtpara 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.