gpt4 book ai didi

php - 使用 php 执行 shell 脚本

转载 作者:可可西里 更新时间:2023-11-01 15:20:16 27 4
gpt4 key购买 nike

我需要通过 php 执行一个 shell 脚本。我正在使用 Apache 网络服务器来运行我的 php 页面。

我知道还有其他类似我的问题(我已经解决了),但由于某些原因我无法完成我的工作。

这是我的 php 文件:

<?php

$output = shell_exec('sh /usr/local/hadoop-3.0.2/copytoallhdfs.sh');

echo "<pre>" . $output . "</pre>";

?>

这是我的 shell 脚本copytoallhdfs.sh:

#!/bin/bash

myarray=`bin/hdfs dfs -ls -C /`
echo $myarray;

for name in $myarray
do bin/hdfs dfs -copyFromLocal myData/* $name;
done

我的 copytoallhdfs.sh 脚本位于路径 /usr/local/hadoop-3.0.2 。所以通常 php 应该执行我的 shell 脚本并显示 echo $myarray; 的输出,但我的浏览器上没有显示任何内容。

也许这是一些权限问题或我的 php.ini 中缺少某些东西,但我无法解决这个问题。
谁能帮我解决这个问题。

谢谢。

最佳答案

使用 2>&1 来实现这一点

$output = shell_exec('sh /usr/local/hadoop-3.0.2/copytoallhdfs.sh 2>&1');

2 指的是进程的第二个文件描述符,即stderr。

>表示重定向。

&1 表示重定向的目标应该与第一个文件描述符相同的位置,即 stdout。

关于php - 使用 php 执行 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54844798/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com