$ BASHPID é o PID do processo atual bash
. Você está procurando por $!
; veja man bash
, especialmente parâmetros especiais e controle de trabalho. Além disso, ping
precisa de sudo
apenas se você estiver usando -f
(flood). Usar sudo
pode complicar as coisas, porque, até onde bash
sabe que você está executando sudo
, não ping
, portanto, $!
retornará o PID de sudo
.
$ ping -c 5 www.example.com & echo "The PID of ping is $!" ; sleep 6
[1] 4022
The PID of ping is 4022
PING www.example.com (192.168.218.77) 56(84) bytes of data.
64 bytes from 192.168.218.77: icmp_seq=1 ttl=64 time=0.260 ms
64 bytes from 192.168.218.77: icmp_seq=2 ttl=64 time=0.329 ms
64 bytes from 192.168.218.77: icmp_seq=3 ttl=64 time=0.382 ms
64 bytes from 192.168.218.77: icmp_seq=4 ttl=64 time=0.418 ms
64 bytes from 192.168.218.77: icmp_seq=5 ttl=64 time=0.434 ms
--- www.example.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4000ms
rtt min/avg/max/mdev = 0.260/0.364/0.434/0.066 ms
[1]+ Done ping -c 5 www.example.com
$