Я записал сценарий удара для сохранения образов от прямой трансляции. URL потоковой передачи является обновлением jpeg файл, таким образом, я записал переменную для создания имени файла с эпохи. Сценарий делает 2 вещи, я надеюсь, что кто-то может разрешить для меня. Во-первых, изображения сохранили использование переменной имени файла, не читаемы как изображения.
Во-вторых, существуют сохраненные файлы, но имена не то, что я хочу.
источник сценария:
#!/bin/bash
while true; do
date=`date +%s`
ext=.jpg
fname=$date$ext
wget http://rawcam.ele.uri.edu/tmpfs/image.jpg -o $fname
sleep 100
done
and here is output:
$ ls
1489453852.jpg 1489453964.jpg image.jpg image.jpg.5 uri.sh
1489453951.jpg 1489453968.jpg image.jpg.1 image.jpg.6
1489453954.jpg 1489453971.jpg image.jpg.2 image.jpg.7
1489453958.jpg 1489453975.jpg image.jpg.3 image.jpg.8
1489453961.jpg 1489453978.jpg image.jpg.4 image.jpg.9
что я делаю неправильно? Я просто хочу сохранить файл image.jpg, каждые несколько секунд, с именем файла как эпоха, когда это произошло.
Как объяснено @steeldriver, опция должна быть верхним регистром O
для выходного файла. Как правило при контакте с именами файлов и другими строками, в сценарии, лучше быть безопасным и разместить их в кавычках. Это избегает некоторых вещей, которые оболочка может неожиданно сделать. Измененная версия Вашего сценария:
#!/bin/bash
while true; do
date=`date +%s`
ext=".jpg"
fname="$date$ext"
wget http://rawcam.ele.uri.edu/tmpfs/image.jpg -O "$fname"
sleep 100
done
то, Что происходило, было то, что эпоха с .jpg
использовалась для создания имени файла, которое использовалось в качестве файла журнала для того выполнения эти wget
команда. wget
самостоятельно загружал image.jpg
, файл, и предотвратить "избиение" * предыдущая загрузка, добавил увеличенные числа, указав в .1
, к каждому имени.
*clobbering - когда новый файл перезаписывает существующий файл с тем же именем.