Я нашел здесь , код для Bash, чтобы он мог найти отсутствующий файл, и этот код прекрасно работает, потому что я не смогу узнать длину упорядоченных файлов, так что это можетнайти отсутствующий файл, не требуя от меня ввода последнего номера в последовательности.
Это код:
shopt -s extglob
shopt -s nullglob
arr=( +([0-9]).@(psd) )
for (( i=10#${arr[0]%.*}; i<=10#${arr[-1]%.*}; i++ )); do
printf -v f "%05d" $i;
[[ ! -f "$(echo "$f".*)" ]] && echo "$f is missing"
done
И он работает как в терминал , так и iTerm .
НО, при использовании в моем Applescript всегда отсутствует ответ с файлом 00000, когда он не :
set AEPname to "AO-M1P8"
set RENDERfolder to quoted form of POSIX path of "Volumes:RAID STORAGE:CACHES:RENDERS:AE"
set ISAEDONE to do shell script "cd /Volumes/RAID\\ STORAGE/CACHES/RENDERS/AE/AO-M1P8/
#!/bin/bash
shopt -s extglob
shopt -s nullglob
arr=( +([0-9]).@(psd) )
for (( i=10#${arr[0]%.*}; i<=10#${arr[-1]%.*}; i++ )); do
printf -v f \"%05d\" $i;
[[ ! -f \"$(echo \"$f\".*)\" ]] && echo \"$f is missing\"
done
"
display dialog ISAEDONE as text
(*
if ISAEDONE contains "is missing" then
display dialog "FILE IS MISSING"
else
display dialog "ALL FINE"
end if
*)
Что я делаю не так или есть более простой способ сделать это?
Заранее спасибо.
Снимок экрана
ОБНОВЛЕНИЕ
Похоже на то, как я это делал, оболочка не может получить каталог файлов. Если я ввожу каталог вручную, кажется, что он должен работать, но теперь я получаюновый тип ошибки:
sh: line 6: arr: bad array subscript
sh: line 6: arr: bad array subscript
Странно, так как я не получаю эту ошибку при ручном вставке кодав терминал.
Я обновил код.