Осуществляется переписка в виде обмена файлами odt. Имеющиеся отредактированные файлы, содержащие послание, отправляются раз в 30 минут.
Для открытия файла на редактирование запускается скрипт sh, который должен сделать:
- скопировать шаблон сообщения с именем Message.odt;
- запросить назначение файлу нового имени и в соответствии с этим переименовать скопированный файл Message.odt;
- сформировать список файлов, время последнего изменения которых не превышает 1 минуты. Практически это всегда 1 файл;
- так как в сформированном списке сначала присутствует указание пути к папке, а имя файла с указанием его пути задаётся второй строкой, то первую строку из файла необходимо удалить;
- прочитать полученный список и записать это значение в переменную (имеется ввиду имя файла с указанием его пути);
- выполнить xdg-open с переменной, которая была только что создана.
В результате получилось следующее:
Код: Выделить всё
#!/bin/bash
sm=$HOME/.scripts/Message.odt
dm=$HOME/Exchange/ForS
temp=$HOME/.scripts
cp $sm $dm
mv $dm/Message.odt $dm/"`zenity --entry --title="Имя файла" --text="Назначьте имя создаваемому файлу"`".odt
find $dm -mmin -1 > $temp/created.txt
perl -ni -e 'print unless $. == 1' $temp/created.txt
var=`cat $temp/created.txt | awk '{print $NF}'`
xdg-open $var
exit
Попытка закавычить $var, то есть сделать xdg-open "$var" к желаемому результату не приводит.
Может быть кто знает волшебный способ заставить описанное выше работать с именами файлов, содержащих пробелы?