I doubt you could do a progress bar for NMap, as it scans for IPs and stuff, and that depends on network speeds, etc.
But you could do a simple bash script to send a notification when it has finished instead:
#!/bin/bash
nmap "$@";
notify-send 'Notifaction' 'Nmap has finished!'
echo "Finished!"
exit
Save it to a file called ~/.nmap
or something.
Make it executable with chmod +x ~/.nmap
.
Execute it with the options you normally give for nmap
, but with ~/.nmap
instead - for example:
~/.nmap -A 192.168.1.5
then it will do a notification to say it has finished:

I find this is useful after a network reset, and I need to find the new IP of the network printer in a hurry. This is probably not the answer you are looking for, but I though it may be of help and of interest.
nmap
spends is sending and receiving data , pinging IPs, etc. This depends on network speeds, security measures on the computers being scanned and stuff. This can vary so much that it would be very hard and inaccurate to time it, and to estimate the time remaining. The large amount of options nmap has aswell would greater increase the variability in timing. If you look inman pv
, there is an example for use ontar
&gzip
, which is does mention may cause the programmer to overheat, but it might work in this scenario... – Wilf Jan 17 '14 at 18:21