【问题标题】:Passing Parameters from PHP to Shell从 PHP 向 Shell 传递参数
【发布时间】:2018-04-22 14:25:49
【问题描述】:

我想通过 3 个输入字段设置 3 个变量。当一个按钮被点击到一个 ShellScript 时,这些变量应该被传递。 我有以下代码...

PHP:

<?php
$min = "20";
$max = "50";
$norm = "70";

$var = shell_exec("action.sh $min $max $norm");
echo $var;
?>

<form>
  Min: <input type="int" name="MIN" value="<?php echo $min;?>">
  <br><br>
  Norm: <input type="int" name="NORM" value="<?php echo $norm;?>">
  <br><br>
  Max: <input type="int" name="MAX" value="<?php echo $max;?>">
  <br><br>
  <input type="submit" name="submit" value="Submit">
</form>

壳牌:

typeset -i MIN
typeset -i MAX
typeset -i NORM

echo MIN, MAX, NORM

我已经阅读了 StackOverflow 上的几个 QA 案例,但没有一个真正有帮助。感谢您的任何建议。

【问题讨论】:

  • 您使用的代码到底有什么问题,实际结果是什么,预期结果是什么?
  • 真正的问题是什么?你读过shell_exec() 和另一个program execution functions 的文档吗? escapeshellcmd()escapeshellarg() 让您远离麻烦(大部分时间)。
  • @jeroen 我在 shell 脚本中有一个算法。但我没有发布它,因为它不相关。问题是 1. 值不会传递给 ShellScript 2. 值不会通过提交而改变...
  • 我很确定这些值会传递给 shell 脚本。也许您没有正确阅读它们?你需要$_GET 来获取传入的值。
  • 您遇到了什么问题?接收用户输入还是?

标签: php shell


【解决方案1】:

如果你想接收并将它传递给 shell,那么使用这个:

<?php

if( !empty( $_POST ) ) {

$min = $_POST['MIN'];
$max = $_POST['MAX'];
$norm = $_POST['NORM'];

echo shell_exec("action.sh $min $max $norm");

}

?>

<form method="POST">
  Min: <input type="number" name="MIN" value="<?php echo $min;?>">
  <br><br>
  Norm: <input type="number" name="NORM" value="<?php echo $norm;?>">
  <br><br>
  Max: <input type="number" name="MAX" value="<?php echo $max;?>">
  <br><br>
  <input type="submit" name="submit" value="Submit">
</form>

【讨论】:

  • 现在保存了这些值,一开始它似乎可以工作。谢谢你 :) 但我仍然没有从 ShellScript 中得到结果:/任何想法是什么原因?
  • 什么 echo "action.sh $min $max $norm";输出?如果您在终端中尝试该命令,输出是什么?
  • 终端传送百分比消息(例如 Min=4,76%),因为算法(哪个 ofc 是正确的)。但是主页上的实际输出实际上什么都没有。
  • 更改 echo shell_exec("action.sh $min $max $norm");回显 shell_exec("action.sh $min $max $norm 2>&1");
  • “sh: action.sh: command not found” 更改后显示
猜你喜欢
  • 1970-01-01
  • 2017-01-22
  • 2016-03-20
  • 2012-02-12
  • 1970-01-01
  • 1970-01-01
  • 2011-12-09
  • 2012-11-21
  • 1970-01-01
相关资源
最近更新 更多