狠狠操网,91中文字幕在线观看,精品久久香蕉国产线看观看亚洲,亚洲haose在线观看

Perl調(diào)用shell命令的幾大方法小結

第1篇:Perl調(diào)用shell命令的幾大方法小結

perl調(diào)用shell命令的幾大方法小結

一、system

perl也可以用system調(diào)用shell的命令,它和awk的system一樣,返回值也是它調(diào)用的命令的退出狀態(tài).

復制代碼代碼如下:

[root@ax3sp2~]#cataa.pl

#!/usr/bin/perl-w

$file="wt.pl";

system("ls-lwt.pl");

$result=system"ls-l$file";

print"$resultn";#輸出命令的退出狀態(tài)

system"date";

[root@ax3sp2~]#perlaa.pl

-rwxr-xr-x1rootroot12612-1615:12wt.pl

-rwxr-xr-x1rootroot12612-1615:12wt.pl

2023年12月16日星期四15:58:34cst

二、反引號

perl的system函數(shù)和awk的一樣不能夠返回命令的輸出.

要得到命令的輸出,就得使用和shell本身一樣的命令:``

復制代碼代碼如下:

[root@ax3sp2~]#catbb.pl

#!/usr/bin/perl

print`date`;

print"thisistestn";

[root@ax3sp2~]#perlbb.pl

2023年12月16日星期四15:51:59cst

thisistest

三、exec

最后,perl還可以使用exec來調(diào)用shell的命令.exec和system差不多,不同之處在于,調(diào)用exec之后,perl馬上就退出,而不會去繼續(xù)執(zhí)行剩下的代碼

復制代碼代碼如下:

[root@ax3sp2~]#catcc.pl

#!/usr/bin/perl

exec("echothisistest");

print"goodbye!n";#這句話不會被輸出

[root@ax3sp2~]#perlcc.pl

thisistest

第2篇:php調(diào)用shell的方法技巧

一、配置

查看php.ini中配置是否打開安全模式,主要是以下三個地方

safe_mode=(這個如果為off下面兩個就不用管了)

disable_functions=

safe_mode_exec_dir=

二、使用

由于PHP基本是用于WEB程序開發(fā)的,所以安全*成了人們考慮的一個重要方面。于是PHP的設計者們給PHP加了一個門:安全模式。如果運行在安全模式下,那么PHP腳本中將受到如下四個方面的限制:

①執(zhí)行外部命令

②在打開文件時有些限制

③連接MySQL數(shù)據(jù)庫

④基于HTTP的認*

在安全模式下,只有在特定目錄中的外部程序才可以被執(zhí)行,對其它程序的調(diào)用將被拒絕。這個目錄可以在php.ini文件中用safe_mode_exec_dir指令,或在編譯PHP是加上--with-exec-dir選項來指定,默認是/usr/local/php/bin。

如果你調(diào)用一個應該可以輸出結果的外部命令(意思是PHP腳本沒有錯誤),得到的卻是一片空白,那么很可能你的網(wǎng)管已經(jīng)把PHP運行在安全模式下了。

三、如何做?

在PHP中調(diào)用外部命令,可以用如下三種方法來實現(xiàn):

1)用PHP提供的專門函數(shù)

PHP提供共了3個專門的執(zhí)行外部命令的函數(shù):system(),exec(),passthru()。

system()

原型:stringsystem(stringmand[,intreturn_var])

system()函數(shù)很其它語言中的差不多,它執(zhí)行給定的命令,輸出和返回結果。第二個參數(shù)是可選的,用來得到命令執(zhí)行后的狀態(tài)碼。

例子:

復制代碼代碼如下:system("/usr/local/bin/webalizer/webalizer");

exec()

原型:stringexec(stringmand[,stringarray[,intreturn_var]])

exec()函數(shù)與system()類似,也執(zhí)行給定的命令,但不輸出結果,而是返回結果的最后一行。雖然它只返回命令結果的最后一行,但用第二個參數(shù)array可以得到完整的結果,方法是把結果逐行追加到array的結尾處。所以如果array不是空的,在調(diào)用之前最好用unset()最它清掉。只有指定了第二個參數(shù)時,才可以用第三個參數(shù),用來取得命令執(zhí)行的狀態(tài)碼。

例子:

復制代碼代碼如下:exec("/bin/ls-l");

exec("/bin/ls-l",$res);

#$res是一個數(shù)據(jù),每個元素代表結果的一行

exec("/bin/ls-l",$res,$rc);

#$rc的值是命令/bin/ls-l的狀態(tài)碼。成功的情況下通常是0

passthru()

原型:voidpassthru(stringmand[,intreturn_var])

passthru()只調(diào)用命令,不返回任何結果,但把命令的運行結果原樣地直接輸出到標準輸出設備上。所以passthru()函數(shù)經(jīng)常用來調(diào)用象pbmplus(Unix下的一個處理圖片的工具,輸出二進制的原始圖片的流)這樣的程序。同樣它也可以得到命令執(zhí)行的狀態(tài)碼。

例子:

復制代碼代碼如下:header("Content-type:image/gif");

passthru("./ppmtogifhunte.ppm");

希望本文所述對大家的PHP程序設計有所幫助。

第3篇:php調(diào)用外部shell的方法總結

當php程序運行在安全模式下時,php腳本受到如下四個方面的限制,就跟隨小編去了解下吧,想了解更多相關信息請持續(xù)關注我們應屆畢業(yè)生考試網(wǎng)!

1)、執(zhí)行外部命令

2)、在打開文件時有些限制

3)、連接MySQL數(shù)據(jù)庫

4)、基于HTTP的認*

在安全模式下,只有在特定目錄中的外部程序才可以被執(zhí)行,對其它程序的調(diào)用將被拒絕。

該目錄可以在php.ini文件中用safe_mode_exec_dir指令,或在編譯PHP是加上--with-exec-dir選項來指定,默認是/usr/local/php/bin。

如果調(diào)用一個應該可以輸出結果的外部命令(意思是PHP腳本無錯),得到的卻是一片空白,那么很可能PHP是運行在安全模式下的。

遇到這種情況,如何處理呢?

在PHP中調(diào)用外部命令,可以用如下三種方法來實現(xiàn):

PHP提供的專門函數(shù)

PHP提供共了3個專門的執(zhí)行外部命令的函數(shù):system(),exec(),passthru()。

system()

原型:stringsystem(stringmand[,intreturn_var])

system()函數(shù)很其它語言中的差不多,它執(zhí)行給定的命令,輸出和返回結果。第二個參數(shù)是可選的,用來得到命令執(zhí)行后的狀態(tài)碼。

例子:

復制代碼代碼如下:

<?php

system("/usr/local/bin/webalizer/webalizer");

?>

exec()

原型:stringexec(stringmand[,stringarray[,intreturn_var]])

exec()函數(shù)與system()類似,也執(zhí)行給定的命令,但不輸出結果,而是返回結果的最后一行。雖然它只返回命令結果的最后一行,但用第二個參數(shù)array可以得到完整的結果,方法是把結果逐行追加到array的結尾處。所以如果array不是空的,在調(diào)用之前最好用unset()最它清掉。只有指定了第二個參數(shù)時,才可以用第三個參數(shù),用來取得命令執(zhí)行的狀態(tài)碼。

例子:

復制代碼代碼如下:

<?php

exec("/bin/ls-l");

exec("/bin/ls-l",$res);

#$res是一個數(shù)據(jù),每個元素代表結果的一行

exec("/bin/ls-l",$res,$rc);

#$rc的值是命令/bin/ls-l的狀態(tài)碼。成功的情況下通常是0

?>

passthru()

原型:voidpassthru(stringmand[,intreturn_var])

passthru()只調(diào)用命令,不返回任何結果,但把命令的運行結果原樣地直接輸出到標準輸出設備上。所以passthru()函數(shù)經(jīng)常用來調(diào)用象pbmplus(Unix下的一個處理圖片的工具,輸出二進制的原始圖片的流)這樣的程序。同樣它也可以得到命令執(zhí)行的狀態(tài)碼。

例子:

復制代碼代碼如下:

<?php

header("Content-type:image/gif");

passthru("./ppmtogifhunte.ppm");

?>

版權聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 yyfangchan@163.com (舉報時請帶上具體的網(wǎng)址) 舉報,一經(jīng)查實,本站將立刻刪除