php - 来自 PHP 的带有 SFTP 的 shell 脚本

标签 php linux bash shell

我在 Linux 中有一个 shell 脚本,它执行 SFTP 来获取一些文件。当我从终端执行它时它工作正常。

我正在尝试从 PHP 调用脚本。它似乎一直工作到 echo,然后它什么也没做。

脚本和 PHP 文件在同一个文件夹中。

这是 PHP 代码:

<?php 
$comando = "sh ftpgesdoc.sh";
$result=exec($comando);
echo $result; 
?>

这是 shell 脚本。当我从 Web 执行时,我可以看到 echo "ejecutando sftp",但此后没有任何反应。

#!/bin/sh
echo "ejecutando sftp"
folder="/aaa/bbb"
file="xxx.PDF" 
sftp UserXX@nnn.nn.n.nn << EOF
cd $folder
get $file test.pdf
EOF

最佳答案

exec仅返回命令输出的最后一行。如果要捕获整个输出,请使用 proc_open .参见 this answer ,例如。

关于php - 来自 PHP 的带有 SFTP 的 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37157151/

相关文章:

java - 如何在 Java 中使用 PHP 正则表达式从字符串中检索主题标签?

php - 代码和 SQL 查询中有什么错误?为什么网页上没有任何显示?

linux - Git删除所有未修改的文件

bash - 选择一个 vagrant provisioner

PHP 突然 super 慢

php - 如果 PHP 中的条件动态更改 css

linux - 如何: compare command output to text file with bash

arrays - 为什么我的 bash 数组追加不起作用?

linux - 在 AWS Ubuntu 实例上的 Nginx 上设置 SSL

linux - Unix - 如何打印文件的最后几行并且每次都忽略第一个相同的字符?