преобразовать код Perl в код Bash - PullRequest
0 голосов
/ 30 июня 2010

Можете ли вы преобразовать этот крошечный код в код Bash:

user/bin/perl
sleep(300);
system("killall -9 perl &");
sleep(5)

Ответы [ 3 ]

6 голосов
/ 30 июня 2010
#!/bin/bash
sleep 300
killall -9 perl &
sleep 5
2 голосов
/ 30 июня 2010
sleep 300
killall -9 perl &
sleep 5
1 голос
/ 01 июля 2010

Программа perl уничтожит не только все другие процессы perl, но и сама себя, поэтому перевод функционального эквивалента будет выглядеть примерно так:

#!/bin/bash
sleep 300
killall -9 perl &
kill -9 $$ &
sleep 5

Финальный sleep 5, вероятно, никогда не выполняется в исходном сценарии или в этом сценарии, хотя возможно, что команда sleep, по крайней мере, начнет выполняться.

Если причина перевода на bash именно в том, что программа должна , а не совершать самоубийство, другие ответы лучше.

Как сказал Деннис Уильямсон, в любом случае ваш сценарий, вероятно, не должен использовать kill -9 и, как правило, не уничтожать глобально, но это зависит от вашей среды, может ли он иметь плохие побочные эффекты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...