2010-06-29 53 views
-2

愿你转换这个小小的代码来砸代码:转换Perl代码Bash的代码

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

请不要使用'kill -9',除非有必要。参见[无用的kill -9](http://sial.org/howto/shell/kill-9/)。 – 2010-06-30 00:06:42

+0

这是功课吗? – Ether 2010-06-30 00:19:04

回答

2
sleep 300 
killall -9 perl & 
sleep 5 
6
#!/bin/bash 
sleep 300 
killall -9 perl & 
sleep 5 
1

Perl程序将杀死不仅所有其他的perl的进程,但也本身,所以在功能上等同翻译会是这样的

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

最终sleep 5大概从来没有在原来的脚本或执行在这一个中,尽管睡眠命令至少可能开始执行。

如果翻译成bash的原因正是这样,即该程序假定而不是自杀,其他答案更好。

正如丹尼斯威廉姆森所说的,无论哪种情况,你的脚本可能不应该使用kill -9,并且通常不会全局杀死,但如果可能有不良副作用,它取决于你的环境。