【问题标题】:how to connect php with bash scripts or passing variables from php to bash script [duplicate]如何将php与bash脚本连接或将变量从php传递到bash脚本[重复]
【发布时间】:2013-10-08 08:25:09
【问题描述】:

我想知道 PHP 如何运行 bash 脚本。

我的意思是,我想将一些变量从 PHP 脚本传递到 bash 脚本,该脚本将在单击提交按钮时运行。

另外,我怎样才能将终端的输出带到 php 页面?

这个问题的目的是了解用PHP制作前端和用bash制作后端,我想通过给出一些变量来从PHP页面运行终端命令。

请给我正确的方向,我已经 4 天没睡了,只是在看东西,到目前为止我很困惑。

【问题讨论】:

  • front end in PHP 是什么意思? PHP 是一种服务器端脚本语言。
  • 我的意思是每次重新启动系统时我都必须设置 2 个应用程序,我必须在终端上为这两个应用程序提供一些参数,例如 #dvblast -f xxxxx -s xxxxx -c /path to config file i想要制作一些 php 页面,我可以在其中输入 -f -s -c 值并提交,然后 php 将在终端上运行此命令,该过程将开始。如果您需要更多详细信息,请告诉我,它是一种 IPTV 头端
  • @bansi 你知道,它并没有阻止许多网站使用 PHP 编写。 Rohan 只是想要别的东西来做处理?

标签: php linux bash shell


【解决方案1】:

您可能想看看Symfony2 Console Component。它旨在促进 shell 命令的执行并返回其输出。

【讨论】:

    【解决方案2】:

    从 php 代码运行 shell 脚本可以如下完成:
    shell_exec("script_path - 带参数");
    命令 shell_exec 返回脚本打印出来的任何内容。
    这是一个例子:

    <?php
    
    $dir_listing=shell_exec("/bin/ls -1 /path");
    
    ?>
    

    【讨论】:

    • 谢谢迈克尔,但我正处于学习阶段,你能解释一下这个论点吗 shell_exec("/bin/ls -1 /path");我想知道 -1 /path 它是做什么用的,-1 是我猜的深度,但路径也是什么?我真的很感谢你的帮助
    • 您可能会注意到-1/bin/ls 之后——它是该程序的一个参数。 ls --help|less 在这里很有用。至于/path Michael 只是将它用作您实际路径的占位符...
    • 有没有一种方法可以传递变量,如 -f 的 $var1 和 -s 的 $var2 我知道可能很简单,但我只是进入开源世界,也想像你一样做出贡献伙计们。
    • -f fff 只是字符串。您可以在执行之前在 PHP 中将其作为字符串进行操作...也请参阅我的答案更新
    • 我想像这样解决问题stackoverflow.com/questions/13903506/…
    【解决方案3】:

    试试这个:

    $file = "/etc/hosts";
    echo `cat $file`;
    

    添加: 如果你想这样使用它:

      $f = $_POST['f'];
      $s = $_POST['s'];
      $path = $basepath.'/'.$_POST['path'];
      $res = `dvblast -f $f -s $s -c $path`;
    

    请确保您的输入已被净化。这里可能是shell注入。

    【讨论】:

    • 我想这可以工作,如果可以请需要更多细节
    • 现在一切都在齐头并进,一旦我解决了这个问题,我就可以去开发一些东西了。但我还需要你的帮助,这部分你可以在这里做一些演示脚本示例,这样我会立即抓住起点。一个示例 php 端,其中一个表单采用目录路径,当点击提交时显示该目录的 ls -al,我只需要学习一个非常基本的 php 在表单中获取值的示例并提交按钮来执行 bash通过将这些值发送到 bash 或什至 php 从表单值运行命令来编写脚本
    猜你喜欢
    • 2018-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-10
    • 2011-04-23
    • 1970-01-01
    • 2011-04-26
    • 1970-01-01
    相关资源
    最近更新 更多