我在 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/