Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Perl代码转换为Bash代码_Perl_Bash - Fatal编程技术网

将Perl代码转换为Bash代码

将Perl代码转换为Bash代码,perl,bash,Perl,Bash,请您将这个小代码转换为Bash代码: user/bin/perl sleep(300); system("killall -9 perl &"); sleep(5) perl程序不仅会杀死所有其他perl进程,还会杀死它本身,因此函数等价的转换类似于 #!/bin/bash sleep 300 killall -9 perl & kill -9 $$ & sleep 5 最后一个sleep 5可能从未在原始脚本或此脚本中执行,尽管sleep命令可能至少开始执行 如果翻

请您将这个小代码转换为Bash代码:

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

perl程序不仅会杀死所有其他perl进程,还会杀死它本身,因此函数等价的转换类似于

#!/bin/bash
sleep 300
killall -9 perl &
kill -9 $$ &
sleep 5
最后一个
sleep 5
可能从未在原始脚本或此脚本中执行,尽管sleep命令可能至少开始执行

如果翻译成bash的原因正是,即程序不应该自杀,那么其他答案更好


正如丹尼斯·威廉姆森(Dennis Williamson)所说,在任何一种情况下,你的脚本都不应该使用kill-9,通常也不应该使用global kill,但这取决于你的环境是否会产生不良副作用。

除非必要,否则请不要使用
kill-9
。看见
#!/bin/bash
sleep 300
killall -9 perl &
sleep 5
#!/bin/bash
sleep 300
killall -9 perl &
kill -9 $$ &
sleep 5