首页 > 系统相关 >PHP执行Shell脚本或Bash脚本文件并返回命令输出详情

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

时间:2022-10-29 09:45:55浏览次数:84  
标签:脚本 执行 Shell dig echo 命令 shell status PHP

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}成功执行";
}
?>

运行结果:

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}成功执行";
}
?>

执行效果如下:

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>";
?>

执行效果如下:

原文地址:https://www.afengblog.com/php-executes-shell-script-or-bash-script.html

标签:脚本,执行,Shell,dig,echo,命令,shell,status,PHP
From: https://www.cnblogs.com/afengblogs/p/16838069.html

相关文章

  • 在windows下通过脚本动态域名DDNS更新
    这里采用PowerShell编写脚本请求3322的动态域名接口$pair="root:更新密码"$encodedCreds=[System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetByt......
  • [python] Python制作自动填写脚本,100%准确率
    本次案例代码实现思路:打开考试网站selenium-->浏览器驱动-->操作浏览器<模拟人的行为做操作浏览器>获取答案获取答案网站链接获取问题以及答案内容对比题目以......
  • 1!5! 花式shellcode
    1!5!花式shellcodedasctf十月的一道题,听哥们在这给你说唱main函数首先mmap了0x1000的一个rwx段,然后起始地址是固定的0x10000,然后往里面读入0x200的内容,中间有个check函......
  • 一键部署redis脚本
    #!/bin/bash##REDIS_VERSION=redis-7.0.5#REDIS_VERSION=redis-7.0.3#REDIS_VERSION=redis-6.2.6REDIS_VERSION=redis-5.0.14#REDIS_VERSION=redis-4.0.14REDIS_URL=http://......
  • IP 地址切换脚本
    @echooffcolor00modeconcols=80lines=30titleIP模式切换脚本:startclsecho=echo============================================================================ec......
  • 浅谈PHP设计模式的观察者模式
    简介观察者模式是行为型模式的一种,定义了对象间一对多的关系。当对象的状态发生变化时候,依赖于它的对象会得到通知。适用场景类似触发钩子事件,可做消息通知、框架底层......
  • 一键部署LNMP平台脚本
    分享一个一键部署LNMP平台脚本,设置通过systemd管理Nginx服务,好用!#!/bin/bashyum-yinstallgccopenssl-develpcre-develtarxflnmp_soft.tar.gzcdlnmp_soft/tarxfngi......
  • python 网页登录了之后拿着cookie直接用于脚本程序获取api接口数据
    #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#python3.7cookieurllib3,requests##pipinstallrequests#分析网站数据源接口规律#当前......
  • Linux系统下如何设置开机自动运行脚本?以Redis开机自启为例
    参考链接:https://baijiahao.baidu.com/s?id=1722174560616569543&wfr=spider&for=pc前言:最近在安装Redis的时候,想找下Redis开机自启的功能,在网上找了很多的教程,貌似很多......
  • shell 基础记录
    ....看到一段不懂的代码local-aarray;array=(/var/lib/dhcp/eth*/var/lib/dhcp/br*/var/lib/dhcp/bond*);echo-n${array[@]##*/}查了查......