У меня есть большая партия JPEG.Я хотел бы написать сценарий оболочки, который выбирает 5 изображений случайным образом, а затем, используя imageMagick, поместить их в монтаж, а затем открыть этот файл монтажа.Я хотел бы, чтобы этот процесс происходил каждые 10 секунд.
Я пробовал этот скрипт
for f in *.jpg
do
shuf -ezn 5 * | xards -0 -n1 | montage *.jpg | display montage.jpg
done
, но он не работает
Он открывает все изображения и выдает мне следующее сообщение об ошибке
image.sh 7: image.sh: Xards: not found
Сценарий go.sh хранится в той же папке / каталоге, что и изображения, и теперь выглядит следующим образом:
#!/bin/bash
# Get list of files into array - just once at start
files=(*.jpg)
# Do forever
first=0
while :; do
# Shuffle array
files=( $(shuf -e "${files[@]}") )
# Make montage of first 5 images in shuffled array
magick montage ${files[0]} ${files[1]} ${files[2]} ${files[3]} ${files[4]} montage.jpg
# Start displaying if first pass - leaving "display" running in background updating itself every second
if [ $first -eq 0 ] ; then
display -update 1 montage.jpg &
first=1
fi
# Snooze 10 and repeat
sleep 10
done
Однако это возвращает
go.sh: 4: go.sh: Syntax error: "(" unexpected
Однако, когдаЯ запускаю
bash go.sh
ImageMagick открывает все изображения в папке за один монтаж, и я получаю следующую ошибку
go.sh: line 12: magick: command not found