当前位置: 首页 > 知识库问答 >
问题:

使用shell_exec将Bash参数传递给PHP文件

岳昊空
2023-03-14

我有一个通过PHP文件调用的bash脚本。首先,这些文件的内容如下:

script.sh

#!/bin/bash
term=$1
curl -H "Accept: text/plain" -s "https://some-api.com/search?term=$term&limit=1"

php文件

<?php
$message = shell_exec("script.sh '".$term."'");
$term    = escapeshellarg($term);
print_r($message);
?>

在上面的例子中,script.sh通过运行类似于./script.shsearch tion的内容来查找。

但是,当运行PHP文件来获取相同的信息时,我得到了错误。

最终,我想通过一个PHP文件运行一个bash脚本,包括参数。

我花了大部分时间尝试使用这个答案中提出的解决方案,感觉我的PHP文件应该可以工作。

我知道我的脚本和编码肯定很混乱,显然没有工作——有人对我可能做错的事情有任何意见吗?

共有1个答案

柴宝
2023-03-14

您可以使用$artv获取命令行参数

$term = $argv[1];

并运行:

php file.php argument
 类似资料:
  • 问题内容: 我正在使用shell_exec方法从PHP调用test.sh。 但是,命令行脚本说它仅收到1个参数:/tmp/my_script.php 当我将呼叫更改为: 码: 它说它收到了3个参数,但是argv [1]和argv [2]为空。 当我将呼叫更改为: 码: 脚本最终将按预期接收所有3个参数。 您是否始终需要使用脚本发送仅带引号的文本,并且不允许发送$ var这样的变量?还是有一些特殊的

  • 问题内容: 我正在尝试编写一个bash脚本,该脚本允许用户使用通配符传递目录路径。 例如, 在此目录中执行时 将输出: 现在的样子,它输出: 的内容: 问题答案: 父外壳(一个调用)为您扩展了外壳。 在脚本中,您需要使用: 双引号确保正确处理文件名中的多个空格等。 可能令人困惑的附录 如果您确实确定要扩展该脚本,则必须确保将其传递给脚本(如其他答案中所述,用引号引起来),然后确保在正确的位置将其扩

  • 我调用test.sh从PHP使用shell_exec方法。 然而,命令行脚本说它只收到一个参数: /tmp/my_script.php 当我将呼叫更改为: 代码: 它说它收到了3个参数,但是argv[1]和argv[2]是空的。 当我将呼叫更改为: 代码: 脚本最终按预期接收所有3个参数。 您是否总是必须随脚本发送仅引用的文本,并且不允许发送$var之类的变量?或者你有没有什么特殊的方式发送$va

  • 问题内容: 我有一个Linux bash脚本“ myshell”。我希望它读取两个日期作为参数,例如:。我是Java程序员,但不知道如何编写脚本来完成此任务。 脚本的其余部分如下所示: 问题答案: 您在脚本中使用,例如

  • 问题内容: 我正在使用Go内置的http服务器,并拍拍来响应一些URL: 我需要向该处理函数传递一个额外的参数-一个接口。 如何向处理程序函数发送额外的参数? 问题答案: 通过使用闭包,您应该能够做您想做的事情。 更改为以下内容(未测试): 然后对

  • 我在解一个有很多常数的非线性方程 我创建了一个用于解决以下问题的函数: 然后我想做: 但是正在解包并向函数传递太多参数,因此我得到: TypeError:terminalV()正好接受2个参数(给定6个) 那么,我的问题是,我是否可以通过某种方式将元组传递给调用的函数?