Você não pode escrever (= redirecionar) para o mesmo arquivo que está lendo. Redirecionar para um arquivo diferente ou usar sed.
sed -i "/$rpc_port/d" $dir
No momento, isso está excluindo todo o conteúdo do arquivo em questão:
#!/bin/bash
rpc_port="9201";
dir="/etc/apache2/ports.conf"
cat $dir | grep -v "Listen $rpc_port" > $dir
O conteúdo do arquivo:
Listen 9200
Listen 9201
Listen 9202
Listen 9203
Listen 9204
Alguém poderia por favor consertar isso ou me dar uma alternativa de trabalho?
Tags grep io-redirection