php - 将数组从 BASH 传递到 PHP
问题描述
我正在使用 shell 脚本列出我桌面上的所有文件。下面是我的shell脚本:
#! /bin/bash
myFiles=`dir /home/chb-pc/Desktop`
#echo $myFiles;
count=0
for f in $myFiles
do
#echo $f
read myArray[$count] = f
`expr $count + 1`
done
echo myArray
上面的脚本将列出所有文件的文件名。我需要将输出存储在一个变量中并将其发送到 PHP,在那里我将循环该变量中的每个文件并做一些事情。
下面是我的 PHP 脚本:
<?php
$output = shell_exec("sh /home/chb-pc/Desktop/files.sh");
foreach ($output as $files) {
echo $files . "<br>";
}
?>
我知道我的 shell 脚本看起来不正确,但我尝试了各种语法但找不到正确的语法。
解决方案
只是避免同时使用两者,PHP 非常有能力列出一个目录:
<?php
$dir = '/home/chb-pc/Desktop';
foreach (new DirectoryIterator($dir) as $fileInfo) {
if($fileInfo->isDot()) continue;
echo $fileInfo->getFilename() . "\n";
}
推荐阅读
- java - 代码不起作用。询问用户 2 个字符并在文本文件中搜索以这两个字符开头的字符串
- javascript - 谁能说出为什么这个 switch 语句不起作用并且总是转到 javascript 中的默认情况?
- text - 如何使用 Flutter 编写带有要点的段落?
- javascript - 在组合中使用 Object.assign() 时可以使用相同的函数名称吗?
- python - Django媒体未加载,静态文件工作
- linux - 查找linux中两个文件夹之间更改的行数
- sql - 将 SQL 转换为 eloquent
- .htaccess - .htaccess 中的多个条件重定向 301 和 404
- python - 使用 fsolve 查找 Python 中两个平均值相交所需的价格
- vhdl - VHDL在详细说明之前无法调用子程序“log2”