LINUX.ORG.RU

Сообщения l-irbis-l

 

BASH Цикл с двумя переменными

Здравствуйте, уважаемые форумчане. Возникла трудность в решении (скорее всего) банальной задачи. Есть две папки с графическими файлами. Необходимо массово объединить изображение из одной папки с изображением из другой. Для решения этой задачи был написан скрипт:

#!/bin/bash
ls_png=$(ls 01/*.png)
echo "$ls_png" > png_list.txt
file_png="png_list.txt"
ls_gif=$(ls 02/*.gif)
echo "$ls_gif" > gif_list.txt
file_gif="gif_list.txt"
for png in `cat $file_png`; do
for gif in `cat $file_gif`; do
convert $png $gif -geometry 458x154+430+1276 -composite out/$png
done
exit

Но скрипт работает не корректно. В результате его выполнения получается, что первое изображение из папки «02» накладывается на все изображения из папки «01», а необходимо так, чтобы первое изображение из папки «02» оказалось поверх первого из папки «01», затем второе из папки «02» поверх второго из папки «01» и так далее. Помогите, пожалуйста, решить данную проблему. (Читал руководство https://rus-linux.net/nlib.php?name=/MyLDP/BOOKS/Bash-Guide-1.12-ru/bash-guide-index.html, разные, схожие по теме, посты на форумах, но гуманитарный склад ума и ограниченные временные сроки, не позволяют самостоятельно решить проблему)

РЕШЕНИЕ!

#!/bin/sh
PNG=()
GIF=()
for p in 01/*.png; do PNG+=("$p"); done
for p in 02/*.gif; do GIF+=("$p"); done
i=0
while [ -f "${PNG[$i]}" ]; do
  p="${PNG[$i]}"
  [ -f "${GIF[$i]}" ] && convert "$p" "${GIF[$i]}" -geometry 458x154+430+1276 -composite out/${p#01/}
  i=$[$i+1]
done
exit

Для тех, кто всегда запускал скрипты через

sh script_name.sh

правильно (в данном случае)

bash script_name.sh

 , ,

l-irbis-l
()

Подмена папки LMS средствами mount

Здравствуйте, уважаемые форумчане. Возникла следующая проблема: На диске, емкостью 240Gb, установлена US 14.04 и LMS система дистанционного обучения по типу moodle. Объем, занимаемый файлами LMS стремиться к лимиту объема диска. Есть несколько папок, в которые система складывает объемный материал. Задача подменить содержимое этих папок, смонтировав в них разделы другого HDD (заранее скопировав исходные фалы), тем самым избежав кропотливого исправления путей в конфигурации LMS (это в теории). На практике - после создание двух разделов и копирования в них файлов с последующем монтирование, LMS работает не корректно. Произведенные действия (с одним разделом и одной из папок):

  • Папка LMS ../resourse/download/
  • mount /dev/sd*/ /mnt
  • cp -R ../resourse/download/* /mnt
  • umount /mnt
  • mount /dev/sd* ../resourse/download/
  • chown -R www:data:www-data ../resourse/download/

После таких манипуляций путь до нужных фалов (и их отображение) по команде ls -l выглядит, как и до всех этих манипуляций. Но при обращение к LMS загружается только начальная страница и возможности авторизации нет (при вводе логина и пароля и нажатии «Enter» страница просто обновляется).

Вопрос: Что сделано не так и что почитать для исправления данной ситуации, если это вообще возможно?

 , ,

l-irbis-l
()

RSS подписка на новые темы