php - PHP 的 Shell 脚本循环不起作用

标签 php shell

我尝试使用 shell_exec() php 函数调用 shell 脚本循环,但无济于事。

我可以毫无问题地执行shell_exec("ls")

我可以 ssh 到服务器并执行 for f inls;执行 echo $f ;完成没有问题。

但是当我将两者结合起来时,

shell_exec("for f in `ls` ; do echo $f ; done")

我没有得到任何输出(也没有得到 NULL 作为错误,我检查过)。

我在这里缺少什么?

P.S:我在这里使用的 for 循环并不是我打算使用的,它只是为了让它更清楚。

最佳答案

echo shell_exec("for f in `ls` ; do echo \$f ; done");

你的错误:

  1. 错过 echo
  2. $ 符号在使用双引号时应立即转义(或者双引号可以替换为单引号)

专业提示:始终使用error_reporting级别E_ALL(或更高)和display_errors 1进行开发

关于php - PHP 的 Shell 脚本循环不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16826026/

相关文章:

python - 命令在终端或程序(Python 和 C++)中给出不同的行为

linux - 我正在寻找将我的 MS-DOS .bat 文件转换为等效的 linux .sh 文件

php - MySQL 通过 ID 在 PHP 中产生结果

php - 使用 SQL REGEXP (mariadb) 过滤 Laravel 中带有特殊字符的地方

javascript - 如何将 session 值从第 1 页 (.js) 文件传递​​到第 2 页 (.php) 文件

linux - 在 shell 脚本命令中传递参数

PHP:OOP 和方法

php - 循环不写正确的值

bash - 在评估文件以为单个命令设置环境变量时,如何支持注释?

shell - 使用 UNIX 命令替换 csv 中的字符或修复不正确的换行符