Dragon

PHP 执行 Shell 脚本或 Bash 脚本文件并返回命令输出详情

2022-10-31 12:45 58 抢沙发 阿峰博客

PHP执行shell 脚本或者 Bash脚本文件实例。
system 和 exec 函数可能被配置文件禁用,可以通过修改php配置文件删除被禁用的函数。

1.通过 system 函数执行

使用实例:

<?php
$shell = "dig www.afengblog.com";
echo "<pre>";
system($shell, $status);
echo "</pre>";
//shell命令执行结果和执行返回的状态值的对应关系
$shell = "<font color='red'>$shell</font>";
if ($status) {
echo "shell命令{$shell}执行失败";
} else {
echo "shell命令{$shell}成功执行";
}
?>

运行结果:
PHP 执行 Shell 脚本或 Bash 脚本文件并返回命令输出详情插图

2.批量执行Shell命令

为了方便管理,可以将所需执行的命令写入至 sh 文件,然后通过 system 执行即可。
sh 文件以#!/bin/bash开头,指示命令解释器,需要执行的命令每行一个,以;结尾,内容结尾可不带换行,否则 status 获取的是换行执行的结果(即空),if 判断为空值则会输出命令执行失败,但实际上结尾换行符以上的命令是实际执行成功的。

#!/bin/bash
dig www.afengblog.com;
dig afengblog.com;
dig cdn.afengblog.com;

可以将 shell 值改为:bash dig.sh
dig.sh 改为以上 sh 文件的相对或绝对路径
如下:

<?php
$shell = "bash dig.sh";
echo "<pre>";
system($shell, $status);
echo "</pre>";
//注意 shell命令的执行结果和执行返回的状态值的对应关系
$shell = "<font color='red'>$shell</font>";
if ($status) {
echo "shell命令{$shell}执行失败";
} else {
echo "shell 命令{$shell}成功执行";
}
?>

执行效果如下:
PHP 执行 Shell 脚本或 Bash 脚本文件并返回命令输出详情插图1

3.通过 exec 函数执行

shell 执行的命令可以根据以上方法自行 diy。
使用实例:

<?php
$shell = "bash dig.sh";
exec($shell, $result, $status);
$shell = "<font color='red'>$shell</font>";
echo "<pre>";
if( $status ){
echo "shell 命令{$shell}执行失败";
} else {
echo "shell 命令{$shell}成功执行, 结果如下<hr>";
print_r( $result );
}
echo "</pre>";
?>

执行效果如下:
PHP 执行 Shell 脚本或 Bash 脚本文件并返回命令输出详情插图2

「点点赞赏,手留余香」

还没有人赞赏,快来当第一个赞赏的人吧!

阿峰博客给阿峰博客打赏
×
予人玫瑰,手有余香
  • 1
  • 5
  • 10
  • 20
  • 50
1
支付

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

2022-10-31

2022-11-23

发表评论

本站已严格贯彻落实《互联网跟帖评论服务管理规定》 注册账号需绑定并验证手机号真实性
  • 您可享受35%的返佣现金哦~