我尝试使用curl从. sh文件中获取结果(远程计算机CPU温度),但我收到的是来自. sh的代码。
我当前的代码curl-s http://192.168.1.5/cgi-bin/temp.sh
它返回. sh文件代码,而不是返回temp
我运行的是Apache2,如果将sh放在index.php文件中,就可以使用grep输出,但这一步似乎太多了。
谢谢你的建议。
尝试将文件改为. cgi。结果相同
我尝试使用curl从. sh文件中获取结果(远程计算机CPU温度),但我收到的是来自. sh的代码。
我当前的代码curl-s http://192.168.1.5/cgi-bin/temp.sh
它返回. sh文件代码,而不是返回temp
我运行的是Apache2,如果将sh放在index.php文件中,就可以使用grep输出,但这一步似乎太多了。
谢谢你的建议。
尝试将文件改为. cgi。结果相同
2条答案
按热度按时间q3aa05251#
之所以得到
temp.sh
脚本的代码而不是它的输出,是因为curl只是下载文件,要真正执行脚本并返回其输出,需要在服务器上运行它,然后检索输出。以下是您可以遵循的步骤:
1.确保该文件可使用
chmod +x temp.sh
执行。1.在脚本的开头添加一个shebang行,指定用于执行脚本的解释器。对于bash脚本,它应该如下所示:
#!/bin/bash
.修改Apache2配置以允许执行shell脚本。可以通过向Apache2配置文件中添加以下行来完成此操作:
重新启动Apache2以应用更改:
sudo service apache2 restart
.现在,您应该能够访问脚本的输出
致以亲切的问候。
pftdvrlh2#
我发现将
curl
命令更改为以下命令解决了问题:我只是将
curl
命令通过管道传输到sh
以返回结果。