php - 从 PHP 调用 Bash 脚本没有输出正确的值
问题描述
我正在尝试从 PHP 调用 bash 脚本。当我从命令行在我的文本文件上运行这个 bash 脚本时,我得到了所需的输出。但是,通过 PHP,它什么也不输出。
以下是我的 PHP 代码。
$output = shell_exec("path/to/script.sh tmp/file.txt");
echo $output;
听起来 path/to/script 是 bash 脚本的路径,而 tmp/file.txt 是脚本的参数。它的输出是空白的,但是当我在命令行中使用相同的输入运行 bash 脚本时,它会正确执行。为什么是这样?
解决方案
如果没有看到 script.sh 就很难回答,但是我可以看到 shell_exec 在失败时输出 null 。
您可以尝试使用该exec()
函数来查看脚本的退出代码。
php手动执行()
所以代码是:
exec("path/to/script.sh tmp/file.txt", $output);
echo $output;
您可能会发现这是一个权限问题,阻止了进程对其进行更改。
尝试更改文件权限chmod 777 tmp/file.txt
推荐阅读
- swift - 如何在swift ui中强制视图更新onAppear
- python - 有没有办法从 BigQuery Python 客户端库执行非阻塞 load_job?
- r - 领先/落后的观察与嵌套数据
- bar-chart - 在条形图中选择列,echarts
- python-3.x - 如何不在抽奖事件中清除 gtkdrawingarea?
- mysql - MySQL计数值并放置自定义列
- javascript - 如何通过 Cognito SDK 以管理员身份更新用户属性
- python - Pandas - 用组中最常见的值替换 Null
- c# - 如何使文本在 Unity 中的 InputField 旁边滚动?
- vue.js - Vue 不会渲染自定义组件