Использование bash, как можно получить количество файлов в папке, исключая каталоги из сценария оболочки без запроса интерпретатора?Как получить количество файлов в папке в виде переменной?
С помощью друга, я попытался
$files=$(find ../ -maxdepth 1 -type f | sort -n)
$num=$("ls -l" | "grep ^-" | "wc -l")
, который возвращает из командной строки:
../1-prefix_blended_fused.jpg: No such file or directory
ls -l : command not found
grep ^-: command not found
wc -l: command not found
соответственно. Эти команды работают в командной строке, но НЕ с помощью сценария bash.
Учитывая, что файл заполнен файлами изображений, отформатированными как 1-pano.jpg
, я хочу захватить все изображения в каталоге, чтобы получить самый большой нумерованный файл, который будет привязан к следующему обрабатываемому изображению.
Почему разница?
Что такое цитаты вокруг ваших команд? – sarnold
Также, избавляйтесь от знаков доллара при назначении переменной; 'files = $ (find ...)' и 'num = $ (ls -l ...)'. – chepner
@sarnold, несколько учебников по сценариям говорят о том, что наличие пробелов внутри блоков исполнения - это плохо, и использовать двойные кавычки для облегчения риска. – Jason