php调用shell脚本获取结果,php中shell_exec不能运行?

用户投稿 105 0

关于“php_调用shell脚本”的问题,小编就整理了【4】个相关介绍“php_调用shell脚本”的解答:

php中shell_exec不能运行?

其实,你这里真是的需求,只是希望在Web这边获取一种方式,来执行一个长达数小时的“异步”任务。

就PHP而言,可以用2种方式来做:

(1)在PHP里使用shell_exec的函数,以shell的方式,启动一个独立的PHP脚本执行。

这种方式,其实相当于在Web服务器处理过程中,独立起了一个shell进程处理你的任务。

这里,需要特别注意的是shell_exec的服务器安全,注意校验参数,小心避免被带入shell命令中。

这个是比较容易实现的方式。

(2)使用PHP实现一个Server,监听一个端口,为Web端提供服务。这里的实现方式有很多,通常要配合扩展,例如原生的pthread(多线程),开源扩展swoole等等。

直接在web程序里使用多线程,是不恰当的,web请求通常有时间限制,例如timeout默认是30秒。你如何保证,在线程任务执行完之前,它的父进程仍然在工作?

shell脚本里的函数怎么调用?

shell中的函数,要在定义这个函数的脚本中进行调用!#!/bin/shecho_line(){ echo date echo "Wellcome to shell func!"}echo_hello(){ echo "Hello World!"}##在这里调用 , 将全部代码写入test.sh就可以了echo "call echo_hello"echo_helloecho "call echo_line"echo_line在命令行下执行:$ test.sh

shell脚本怎么执行?

编写好的shell脚本(如:test),可以采取两种方式进行运行:

一、 $ sh test一般不采用这种调用方式,尤其不采用“sh<test”的调用方式,因为这种方式将禁止shell读取标准输入。也可以采用 $ ksh test这种方式要求shell具有“可读”的访问权限。

二、直接运行可执行的shell脚本之前,首先应使用下列chmod命令,把shell脚本文件设置为可执行的文件。

chmod 755 test(除文件属主可写之外,每个用户均具有读和可执行的访问权限)chmod +rx test(同上)chmod u+rx test(只有文件属主具有读和执行的访问权限)按照上述要求设置shell脚本文件的访问权限后,可采用下列方式,直接运行shell脚本了。

1、test(如果命令检索路径包含当前目录)

2、./test(如果命令减缩路径不包含当前目录)*说明: sh test 方式调用一个shell叫蹦可能会禁止某些shell特定的扩展功能,因而可能引起脚本无法正确执行。

shell脚本运行命令?

在linux下shell脚本执行命令主要有四种方式,具体介绍如下:

方式一:

切换到shell脚本所在的目录(也叫工作目录)执行shell脚本,具体代码是:

cd /data/shell

./hello.sh

方式二:

可以以绝对路径的方法去执行bash shell脚本,具体代码是:

/data/shell/hello.sh

方式三:

可以选择直接使用bash命令或者sh命令来执行bash shell脚本,具体代码是:

cd /data/shell

bash hello.sh

或者

cd /data/shell

sh hello.sh

方式四:

还可以选择在当前的shell环境中执行bash shell脚本,具体代码是:

cd /data/shell

. hello.sh

cd /data/shell

source hello.sh

说明:前三种方式执行shell脚本时都需要在当前shell(即父shell)开启的一个子shell环境中执行,完成之后就会关闭回到原来的shell中,但方式四是直接在当前的shell中执行的。

到此,以上就是小编对于“php_调用shell脚本”的问题就介绍到这了,希望介绍关于“php_调用shell脚本”的【4】点解答对大家有用。

抱歉,评论功能暂时关闭!