Существует два различных пути, которыми Вы могли бы пойти об этом.
1) данные, которые необходимо совместно использовать, являются нестойкими. Другими словами, необходимо запустить одно приложение с частью данных, с которыми оно может сделать что-то. В этом случае Вы зарегистрировали бы специальную схему URL на приложение.
можно узнать больше информации о схемах URL через Craig Hockenberry в его [отредактированное] сообщение в блоге .
2) данные, которые необходимо совместно использовать, являются персистентными. Другими словами, Вам нужно что-то как файл данных, который оба приложения могут считать и записать также. Насколько я знаю, что нет безопасного способа сделать это кроме того, чтобы хранить Ваши данные на удаленном сервере. При необходимости в данных, доступных без информационного соединения тогда, необходимо было бы выяснить способ синхронизировать данные между отдельными приложениями и удаленным сервером.
Похоже, вам нужна системная утилита md5sum.
URLMD5=`/bin/echo $URL | /usr/bin/md5sum | /bin/cut -f1 -d" "`
Если вы хотите создать хеш только для имени файла, вы можете быстро получить это с помощью sed:
FILENAME=`echo $URL | /bin/sed -e 's#.*/##'`
URLMD5=`/bin/echo $FILENAME | /usr/bin/md5sum | /bin/cut -f1 -d" "`
Обратите внимание, что в зависимости от в вашем дистрибутиве путь к cut
может быть / usr / bin / cut
.
Newer versions of Bash provide an associative array, as well as an indexed array. Something like this might work for you:
declare -A myarray
myarray["url1"]="url1_content"
myarray["url2"]=""
if [ ! -z ${myarray["url1"]} ] ; then
echo "Cached";
fi
wget will typically rename the files with a filename.html.1, .2, etc., so you could use the associative array to store a list of which one has been downloaded and what the actual filename was.