繁体   English   中英

在php中运行.sh脚本

[英]Run a .sh script in php

我正在尝试在php中运行.sh脚本。

这是sh代码

 php fetchdrive.php

当我双击运行.sh脚本时,它可以正常工作,并显示我返回的变量(数组)。 我正在使用wampserver运行php。 多个php文件可以正常工作,不幸的是,该文件只能在命令行中运行,因此我想出了为什么不通过index.php文件中的sh调用命令的原因。 当我尝试<?php echo exec('sh C:/wamp64/www/run.sh'); ?> <?php echo exec('sh C:/wamp64/www/run.sh'); ?>在我的index.php文件中,它不起作用。 我知道这一点,因为在php文件的底部,我试图执行它具有alert(“ Hello”);。

实际上,当我尝试使用echo exec时,我认为它根本没有运行命令。 所有这些都是因为我试图运行命令“ php fetchdrive.php”而不必在终端中手动键入该命令,因为当我开始运行该服务器时,不必每次都重新运行该命令。

有任何想法吗?

编辑:这是警报的脚本标签

<script type="text/javascript"> alert("Hello!"); </script>

它适用于我的其他php文件。

tl; dr我只是想在网站内运行php终端命令。

这是我所做的,因此,如果对您不起作用,则可能是WAMP或其他问题。 我可能是错的,但我不认为您所使用的盒子确实很猛。

<?php
passthru(__DIR__ . '/lame.sh');

和sh文件(password_hash函数至少需要PHP v5.5):

#!/bin/bash
PASSWORD = 'kookoopapa1'
PHP=`which php`
PASSWORD=`$PHP -r "echo password_hash( '$PASSWORD', PASSWORD_BCRYPT, ['cost' => 11] );"`
printf "<script type=\"text/javascript\"> alert(\"$PASSWORD\"); </script>\n"

试一试。 还有一种可能是您的bash并非真正位于/ bin / bash。 在您的终端中,键入“哪一个bash”,并查看其内容。 根据需要修改您的shebang。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM