如何将参数从php传递给bash脚本

时间:2014-02-10 16:03:03

标签: php bash

我正在尝试使用输入框中的值更改网络配置。页面加载时,它们显示字段的地址,用户可以编辑它们。当用户点击更新按钮时,必须将其更改为新值。我无法将参数传递给服务器。我有一个更改 / etc / network / interfaces 文件的bash脚本,但我无法使用正确的值更新文件。

<?php $mask=shell_exec("some grep for netmask' "); ?>
<?php $gateway=shell_exec("some grep for gateway"); ?>
<?php $ip=shell_exec('hostname -I'); ?>
<?php $domain=shell_exec('hostname -d'); ?>

<tr><td>Mask</td><td><input name="mask" value="<? echo $mask ?>"</input></td></tr>
<tr><td>Gateway</td><td><input name="gateway" value="<? echo $gateway ?>"</input></td></tr>
<tr><td>Address</td><td><input name="ip" value="<? echo $ip ?>"</input></td></tr>
<tr><td>Domain</td><td><? echo $domain ?></td></tr>
<tr><td>Update</td><td><form name="input" method="post">

1 个答案:

答案 0 :(得分:0)

所以基本上你需要修改一个文件?首先要考虑的是php是由用户运行的,该用户应该有足够的权限来访问和修改bash脚本文件。 那么你只需要读取文件,修改参数然后回写它。因为我们没有你的bash脚本的代码,所以我们无法帮助你操作它,但你的php代码应该是这样的:

<?php
$bashscript =file_get_contents("yourbashfile.sh"); // read the bash script
//code to manipulate your bash script with the data in $_POST

file_put_contents("yourbashfile.sh",$bashscript); // and put it back
?>