首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用参数从PHP执行bash脚本

使用参数从PHP执行bash脚本
EN

Stack Overflow用户
提问于 2013-06-16 12:59:47
回答 1查看 637关注 0票数 0

我有一个PHP脚本,它将作为cron在Ubuntu服务器上运行。

我正在尝试从PHP脚本执行bash脚本,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    exec(escapeshellarg('/bin/bash ') . escapeshellarg("/home/monu/myBash.sh") . escapeshellarg("var1") . escapeshellarg("var2") .escapeshellarg("var3"));

当我以用户身份在终端(monu)中运行"php myPHP.php“时,会得到如下错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    sh: 1: /bin/bash /home/monu/myBash.sh var1 var2 var3: not found

myBash.sh的内容如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    export CLASSPATH=./:./lib/xp.jar:./lib/ojdbc14.jar:./lib/log4j-1.2.8.jar:./lib/log4j.properties:./lib/log4j.xml

    cd someDir
    ./install.sh $A $B $C $D
    cd ..

当我从命令行手动执行BASH脚本时,它就像预期的那样工作。

我甚至试过system()shell_exec(),但还是没有运气。

我应该如何从PHP脚本中调用这个BASH脚本来使它工作,任何提示?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-16 13:01:48

每个参数都应该使用escapeshellarg(),而不是整个命令。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
exec(escapeshellarg('/bin/bash') . ' ' . escapeshellarg("/home/monu/myBash.sh") . ' ' . escapeshellarg(...));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17137667

复制
相关文章
PHP执行Shell脚本或Bash脚本文件并返回命令输出详情
system和exec函数可能被配置文件禁用,可以通过修改php配置文件删除被禁用的函数。
阿峰技术博客
2022/10/29
2.5K0
PHP执行Shell脚本或Bash脚本文件并返回命令输出详情
SHELL(bash)脚本编程六:执行流程
bash命令的执行分为四大步骤:输入、解析、扩展和执行。 本文将详述bash命令的一般处理过程: 如图所示
用户5030870
2019/04/11
1.7K0
SHELL(bash)脚本编程六:执行流程
使用 eAccelerator 加快 PHP 脚本执行效率
eAccelerator 是一个免费开源的 PHP 加速、优化、编译和动态缓存的项目,它可以通过缓存 PHP 代码编译后的结果来提高 PHP 脚本的性能,使得一向很复杂和离我们很远的 PHP 脚本编译问题完全得到解决。通过使用 eAccelerator,可以优化 PHP 代码执行速度,降低服务器负载。PHP 应用执行速度最高可达10倍。
Denis
2023/04/14
5760
使用 eAccelerator 加快 PHP 脚本执行效率
定时执行php脚本
第一个方法是最常见的, 如果php服务器上没有权限去crontab, 也可以找一个自己的机器定期crontab去请求服务器
IT工作者
2022/04/23
2.6K0
[PHP] PHP的脚本执行
PHP的脚本执行: PHP的脚本执行还是会经过编译环节, 只不过它们一般会在运行的时候实时进行编译 1.启动PHP及Zend引擎, 加载注册的扩展模块 2.读取脚本文件,Zend引擎对脚本文件进行词法分析,语法分析。 3.编译成opcode执行 4.如果安装opcode缓存扩展(如APC, xcache, eAccelerator等),可能直接从缓存中读取opcode执行
唯一Chat
2019/09/10
1.7K0
如何使用Linux的Crontab执行PHP脚本
我们的PHP程序有时候需要定时执行,我们可以使用ignore_user_abort函数或是在页面放置js让用户帮我们实现。但这两种方法都不太可靠,不稳定。我们可以借助Linux的Crontab工具来稳定可靠地触发PHP执行任务。 下面介绍Crontab的两种方法。 一、在Crontab中使用PHP执行脚本 就像在Crontab中调用普通的shell脚本一样(具体Crontab用法),使用PHP程序来调用PHP脚本。 每一小时执行myscript.php如下: # crontab -e 00 * * *
wangxl
2018/03/07
2.4K0
macos定期执行php脚本
在CentOS下可以通过shell脚本执行定时任务 在macos下 有类似的功能 使用crontab
雪碧君
2023/02/15
9660
【Groovy】Groovy 脚本调用 ( 命令行执行 Groovy 脚本并传入参数 | 获取 Groovy 脚本执行参数 )
在 Groovy 脚本 , Groovy 类 , Java 类中 , 可以调用 Groovy 脚本 ;
韩曙亮
2023/03/30
2.2K0
【Groovy】Groovy 脚本调用 ( 命令行执行 Groovy 脚本并传入参数 | 获取 Groovy 脚本执行参数 )
bash脚本编程
编程语言: 编译器,解释器 编程语言:机器语言,汇编语言、高级语言 静态语言:编译型语言 强类型(变量) 关键字: 事先转换成可执行格式 c,c++,JAVA,C# 动态语言:解释型语言 on the fly 弱类型 边解释变执行 php,shell,python,perl(面向过程) ​ 面向对象:shell,c 面向对象:JAVA,Python,perl,C++ ​ bash:脚本解释器 编程能力: 脚本编程 变量:内存空间,命名的内存空间(可以回收) 内存:编址的存储
若与
2018/07/04
1.3K0
bash 脚本 learning
linux bash 脚本是个好东西,能用工具搞定的就尽量避免用手敲。这里记录下学习过程中的问题。
上山打老虎了
2022/06/14
4390
在Linux使用Bash脚本命令
tee命令的默认行为是覆盖指定的文件,与>运算符相同。 要将输出附加到文件,请使用-a(--append)选项调用命令:
用户5005176
2021/08/10
2.1K0
使用 Bash 脚本从 SAR 报告中获取 CPU 和内存使用情况
大多数 Linux 管理员使用 SAR 报告监控系统性能,因为它会收集一周的性能数据。但是,你可以通过更改 /etc/sysconfig/sysstat 文件轻松地将其延长到四周。同样,这段时间可以延长一个月以上。如果超过 28,那么日志文件将放在多个目录中,每月一个。
用户8989785
2021/09/09
1.9K0
shell 脚本执行带参数的hivesql
原文连接:https://issues.apache.org/jira/browse/HIVE-2020
用户1217611
2022/05/06
4.1K0
使用bash编写Linux shell脚本--复合命令
除了最简单的脚本,你很少想要执行每一个命令。执行一组命令或者重复执行一组命令若干次比执行单个命令更加有助。复合命令是将命令封装在一组其他命令中。 从可读性来说,封装后的命令使用缩进格式将会使复合命令的代码清晰并便于阅读。管理员曾经抱怨过我的缩进比标准的缩进少了一个空格(我必须使用尺子在屏幕上测量才能确定此事),我认为这不是什么问题,但是他说,当输入 0 时,它的程序会崩溃。 复合命令总是有两个命令组成。命令的结束符是该命令相反拼写顺序,就像使用括号将命令括住了。例如:神秘莫测的命令 esac 实际上是复合命
猿人谷
2018/01/17
2.4K0
bash脚本 while语法
基本语法(比较常见的两种形式): 只要特定条件为真,”while” 语句就会执行 while [ condition ] do command1 command2 command3 done 或者 while [ condition ]; do command1 command2 command3 done 说明:  行1,首先进行条件测试,如果传回值为0(条件测试为真),则进入循环,执行命令区域,否则 不进入循环,介绍while 命令  行3,执行命令区域,这些命令中,
joshua317
2018/04/16
8480
bash脚本 while语法
Bash脚本编程(原创)
Bash,Unix shell的一種,在1987年由布萊恩·福克斯為了GNU計劃而编写。1989年釋出第一個正式版本,原先是計劃用在GNU作業系統上,但能运行于大多数类Unix系统的操作系统之上,包括Linux與Mac OS X v10.4都將它作為預設shell。它也被移植到Microsoft Windows上的Cygwin與MinGW,或是可以在MS-DOS上使用的DJGPP專案。在Novell NetWare與Andriod在上也有移植。1990年後,Chet Ramey成为了主要的维护者。為Bourne shell的後繼相容版本與開放原始碼版本,它的名稱來自Bourne shell(sh)的一个双关语(Bourne again / born again):Bourne-Again SHell。
用户2645267
2018/08/04
1.4K0
常用bash脚本功能
参考:https://stackoverflow.com/questions/3601515/how-to-check-if-a-variable-is-set-in-bash
YP小站
2021/11/26
9000
Linux笔记------bash脚本
<https://www.runoob.com/linux/linux-shell-basic-operators.html
来杯Sherry
2023/05/25
1.7K0
linux 如何关闭正在执行的php脚本
1. 如果不是后台执行,直接ctrl+c 就终止执行 2. 如果是后台执行 首先执行:sudo ps –ef|grep php
全栈程序员站长
2022/07/11
2.5K0
点击加载更多

相似问题

从bash脚本执行php脚本

11

从Bash脚本执行PHP脚本

10

从php执行bash脚本

11

从PHP执行Bash脚本

17

无法从PHP执行Bash脚本

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文