Problema: Depois de executar exec bash
os aliases presentes no prompt de login padrão são perdidos, fazendo com que alguns comandos não funcionem como esperado, como o tcpdump no exemplo a seguir
-bash-4.2$ tcpdump -i port1 -w /home/user/$HOSTNAME-port1.pcap -c10000 -G300
tcpdump: WARNING: port1: no IPv4 address assigned
tcpdump: listening on port1, link-type EN10MB (Ethernet), capture size 65535 bytes
0 packets captured
0 packets received by filter
0 packets dropped by kernel
-bash-4.2$ exec bash
bash-4.2$ tcpdump -i port1 -w /home/user/$HOSTNAME-port1.pcap -c10000 -G300
tcpdump: port1: You don't have permission to capture on that device
(socket: Operation not permitted)
A correção: Você pode fazer o que eu fiz e descobrir como os aliases mudam entre os diferentes prompts
-bash-4.2$ type tcpdump
tcpdump is aliased to 'sudo /usr/sbin/tcpdump'
-bash-4.2$ exec bash
bash-4.2$ type tcpdump
tcpdump is /usr/sbin/tcpdump
e, em seguida, altere o script para usar os sudo tcpdump
em vez de tcpdump
.
Ou, como alternativa, você pode restaurar todos os aliases presentes no prompt original, executando exec -a -bash bash
(o que não é recomendado, consulte o comentário de @ ctrl-alt-delor)