通过php将参数传递给sh。收到第一个参数,但未收到第二个参数
sh脚本中的通过php将参数传递给sh。收到第一个参数,但未收到第二个参数,php,shell,exec,Php,Shell,Exec,sh脚本中的$1可以引用第一个参数$htmlpageid。 第二个参数应该由$2引用。对吧? <?php $htmlpageid = uniqid(); $days ="1"; $command = shell_exec("sudo ./createclientcert.sh $htmlpageid $days"); ?> 不管我怎么做,我都无法将第二个参数$days转移到脚本中。 我尝试了几种方法,但都没有传递第二个参数$days我犯了一
$1
可以引用第一个参数$htmlpageid
。
第二个参数应该由$2
引用。对吧?
<?php
$htmlpageid = uniqid();
$days ="1";
$command = shell_exec("sudo ./createclientcert.sh $htmlpageid $days");
?>
不管我怎么做,我都无法将第二个参数$days
转移到脚本中。
我尝试了几种方法,但都没有传递第二个参数
$days
我犯了一个错误,在sh脚本中引用$days乘以$2,因为我在函数定义中引用了它
为这件愚蠢的事感到非常抱歉
相反,我应该在函数外部编写命令,或者使用传递给脚本的参数调用函数:
#!/bin/sh
newclient () {
echo "# valid from "$(date) "till "$(date --date='+'$2' day') >> /root/$1.ovpn
}
newclient $1 $2
第二个论点有什么不被接受的?mydomain.nl上的URL,或者createclientcert.sh是否未从PHP收到$days?(测试脚本在这里工作得很好)…@Kevin_Kinsey“或者createclientcert.sh没有从PHP收到$days吗?”这正是我的故事告诉我们的。)我已经更新了这个问题,使它不那么令人困惑有错误信息吗?如果你不通过sudo调用脚本,它会超过2美元吗?@Kevin_Kinsey已经解决了这个问题。谢谢你和我一起思考,但我犯了一个相当愚蠢的错误。我自己回答了这个问题,但可以在两天内接受它作为答案。
#!/bin/sh
newclient () {
echo "# valid from "$(date) "till "$(date --date='+'$2' day') >> /root/$1.ovpn
}
newclient $1 $2