Ваш код выглядит нормально.Разрешение суперпользователя не требуется для выполнения скрипта.Вы должны включить вывод ошибок PHP или проверить файл журнала ошибок PHP.Могу поспорить, вы найдете причину там.Если нет, перепроверьте каталог и права доступа к файлам:
./index.php
./sdcard/htdocs/myscript.sh
./sdcard/htdocs/images
sdcard
и sdcard/htdocs
требуют наличия исполняемых прав доступа.sdcard/htdocs/images
требует разрешения на выполнение и чтение (ls
в myscript.sh
), как и sdcard/htdocs/myscript.sh
.Но я предполагаю, что это что-то еще, потому что ошибки разрешения должны отображаться (2>&1
).
Редактировать
Вы можете найти последний измененный файл с PHP,нет необходимости запускать другой процесс.Возьмите одно из этих двух:
$images = glob('sdcard/htdocs/images/*');
$images = array_combine(array_map('filemtime', $images), $images);
asort($images);
echo $lastModifiedImage = end($images);
Или с меньшим количеством операций с массивами:
$images = glob('sdcard/htdocs/images/*');
array_reduce($images, function($previous, $element) use (&$found) {
$mtime = filemtime($element);
$found = $previous < $mtime ? $found : $element;
return $previous < $mtime ? $mtime : $previous;
}, 0);
echo $found;