Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过php将参数传递给sh。收到第一个参数,但未收到第二个参数_Php_Shell_Exec - Fatal编程技术网

通过php将参数传递给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我犯了一

sh脚本中的
$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