Программа perl уничтожит не только все другие процессы perl, но и сама себя, поэтому перевод функционального эквивалента будет выглядеть примерно так:
#!/bin/bash
sleep 300
killall -9 perl &
kill -9 $$ &
sleep 5
Финальный sleep 5
, вероятно, никогда не выполняется в исходном сценарии или в этом сценарии, хотя возможно, что команда sleep, по крайней мере, начнет выполняться.
Если причина перевода на bash именно в том, что программа должна , а не совершать самоубийство, другие ответы лучше.
Как сказал Деннис Уильямсон, в любом случае ваш сценарий, вероятно, не должен использовать kill -9 и, как правило, не уничтожать глобально, но это зависит от вашей среды, может ли он иметь плохие побочные эффекты.