shell脚本--php执行shell命令

  这里只演示一些普通的shell命令,一些需要root用户权限执行的命令,请参考:php以root权限执行shell命令

  php执行shell命令,可以使用下面几个函数:

string system ( string $command [, int &$return_var ] )
string exec ( string $command [, array &$output [, int &$return_var ]] )
void passthru ( string $command [, int &$return_var ] )

  注意的是:这三个函数在默认的情况下,都是被禁止了的,如果要使用这几个函数,就要先修改php的配置文件php.ini,查找关键字disable_functions,将这一项中的这几个函数名删除掉,然后注意重启apache。

  首先看一下system()和passthru()两个功能类似,可以互换:

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

  执行结果如下:

  

  注意,system()会将shell命令执行之后,立马显示结果,这一点会比较不方便,因为我们有时候不需要结果立马输出,甚至不需要输出,于是可以用到exec()

  

  exec()的使用示例:

<?php
    $shell = "ls -la";
    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.cnblogs.com/-beyond/p/8570654.html

时间: 2024-10-11 08:18:41

shell脚本--php执行shell命令的相关文章

shell脚本中执行mysql命令

1.mysql -hhostname -uuser -ppsword -e "mysql_cmd" 2. mysql -hhostname -uuser -ppsword << EOF    mysql_cmdEOF 如下简单例子: #!/bin/bashmysql -hservicedb-online -uroot -proot123 -e "use test;select * from tests;"  #方法1实例mysql -hservicedb

shell脚本中执行shell脚本

1.a.sh #!/bin/sh name="hello" ./b.sh $name  2.b.sh(这里把b.sh与a.sh放在同一目录下,便于演示) #!/bin/sh echo "parameter is :$1"   3. 执行 # 进入a.sh文件所在目录 ./a.sh 4.执行结果 原文地址:https://www.cnblogs.com/lvlin241/p/9279979.html

编写shell脚本和执行

这次的学习内容: 认识shell,如何编写shell脚本和执行Shell 其实就是一个解释执行命令的程序,所谓shell编程其实就是用一定的语法将各种基本的命令组合起来,让shell程序去解释执行.如果对windows的dos有了解,可以这样理解,其实shell脚本文件和.bat批处理文件差不多.然而linux下的shell比起windows的dos强大很多,呵呵.为了安全起见,创建一个普通的账号进行学习]# useradd cnetsa]# passwd cnetsa然后使用 cnetsa 这

Linux中使用crontab命令定时执行shell脚本或其他Linux命令

使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令.例如系统管理员安排一个备份任务使其每天都运行 如何往 cron 中添加一个作业? # crontab –e0 5 * * * /root/bin/backup.sh 这将会在每天早上5点运行 /root/bin/backup.sh Cron 各项的描述 以下是 crontab 文件的格式: {minute} {hour} {day-of-month} {month} {day-of-week} {full-pat

shell脚本中常用的命令:wget、curl、ss、lsof、nmap、nc、netstat、telnet

shell脚本中常用的命令:wget.curl.ss.lsof.nmap.nc.netstat.telnet 实验环境说明: (1)远程nginx服务器IP:192.169.5.136,nginx服务使用的端口是80: (2)本地ceshiji的IP: 192.169.5.121 在服务器本地监控服务端口常见命令:netstat.ss.lsof(简称三'S') 举例说明常用命令的选项: (1)[[email protected] ~]# netstat -lnp |grep nginx tcp

Shell脚本中执行sql语句操作

这篇文章主要介绍了Shell脚本中执行sql语句操作mysql的5种方法,本文讲解了将SQL语句直接嵌入到shell脚本文件中.命令行调用单独的SQL文件.使用管道符调用SQL文件等方法,需要的朋友可以参考下 对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的结果美化,需要进一步完善和调整.以下为具体的示例及其方法. 1.将SQL语句直接嵌入到sh

[Shell]Shell脚本的执行方式

---------------------------------------------------------------------------------------------------------- 能完成大部分输出任务的命令:echo echo helloworld; #正确 echo "hello world";   #正确 echo "hello world !"; #中间有空格须加引号,且!在Linux中有特殊含义,不能加双引号,而用单引号(注

Shell脚本中执行mysql的几种方式(转)

Shell脚本中执行mysql的几种方式(转) 对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的结果美化,需要进一步完善和调整.以下为具体的示例及其方法. 1.将SQL语句直接嵌入到shell脚本文件中 复制代码 代码如下: --演示环境   [[email protected] ~]# more /etc/issue   CentOS rele

Shell脚本的执行方式详解

当Shell脚本运行时,它会先查找系统环境变量ENV,该变量指定了环境文件(加载顺序通常是/etc/profile.~/.bash_profile.~/.bashrc./etc/bashrc等),在加载了上述环境变量文件后,Shell就开始执行Shell脚本中的内容. Shell脚本是从上至下.从左至右依次执行每一行的命令及语句的,即执行完了一个命令后再执行下一个,如果在Shell脚本中遇到子脚本(即脚本嵌套)时,就会先执行子脚本的内容,完成后再返回父脚本继续执行父脚本内后续的命令及语句. 通常