MacCentre.ru Форум
Форум по компьютерам Mac, Mac OS X и продукции Apple
 
ПравилаПравила   FAQFAQ   ПоискПоиск  РегистрацияРегистрация   ПрофильПрофиль   Войти и проверить ЛСВойти и проверить ЛС   ВходВход 
aple sckript vs shell sckript
Начать новую тему   Ответить на тему Список форумов MacCentre.ru Форум » Программирование и Beta-тестирование   
Автор Сообщение
avas



Reputation: 0    

Зарегистрирован: 02.05.2009
Сообщения: 20

СообщениеДобавлено: Wed Dec 04, 2013 16:10
aple sckript vs shell sckript
Ответить с цитатой

Дорогие друзья!
Подскажите пожалуйста как быть в такой непростой ситуации. Есть ряд полезных скриптов написанных на apple sckript. Так же есть ряд полезных скриптов написанных на shell script. Скрипты выполняют самые разные функции. Но вот недавно возникла потребность сделать такой симбиоз - взаимодействие с пользователем с помощью эпл скрипта. Потом это надо как то передать на обработку шел скрипту. В прсторах интернета нашёл информацию, что надо сделать переменные используемые в скриптах - глобальными - сделал. Но почему то шел скрипт всё равно не видит переменных эпл скрипта. Помогите пожалуйста, Буду искренне признателен за любую подсказку.

С уважением


Последний раз редактировалось: avas (Wed Dec 04, 2013 19:10), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Daniel



Reputation: +348    

Зарегистрирован: 14.07.2001
Сообщения: 9072
Откуда: Украина

СообщениеДобавлено: Wed Dec 04, 2013 16:24
Ответить с цитатой

Так а чем помочь? Показывайте конкретные примеры.

Off: что такое sckript?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
avas



Reputation: 0    

Зарегистрирован: 02.05.2009
Сообщения: 20

СообщениеДобавлено: Wed Dec 04, 2013 20:53
Ответить с цитатой

Собственно вот один из самых простых вариантов:

Эта часть на aplscript'e

set otkuda to choose folder
set kuda to choose folder

-- тут попытка объявить их глобальными

global otkuda
global kuda

-- А потом хотелось бы обработать её shell script'ом

do shell sckript "rsync -a $otkuda $kuda"

Из за того, что сеть не так стабильна как хотелось бы и большие объёмы и кол-во файлов, этот скрипт хотя и прост но сильно бы выручал. По крайней мере меня выручает, но я не пользуюсь GUI. C терминала всё нормально отрабатывает. Но сейчас помочь нужна тем кто в терминале не очень, вот и .......
С уважением,
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Daniel



Reputation: +348    

Зарегистрирован: 14.07.2001
Сообщения: 9072
Откуда: Украина

СообщениеДобавлено: Wed Dec 04, 2013 21:15
Ответить с цитатой

Не надо делать их глобальными, надо привести путь в вид posix и надлежащим образом его вставить:

Код:
set otkuda to choose folder
set kuda to choose folder

set sourcePath to quoted form of POSIX path of otkuda
set destinationPath to quoted form of POSIX path of kuda

do shell script "rsync -a " & sourcePath & " " & destinationPath


Quoted form — на случай, если в имени будут пробелы или что-то подобное.

http://developer.apple.com/library/mac/technotes/tn2065/_index.html
http://www.satimage.fr/software/en/smile/external_codes/file_paths.html
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
avas



Reputation: 0    

Зарегистрирован: 02.05.2009
Сообщения: 20

СообщениеДобавлено: Fri Dec 06, 2013 08:23
Ответить с цитатой

Спасибо огромное!
Заработал!
Теперь проблемка с пробелами и спец символами в адресах папок.
Но спасибо за ссылочки - сделал немало открытий Smile

Никак не могу понять почему он не хочет работать с папкой созданной в формате типа :

Хороший персонаж (версия 3)

Пробовал рекомендованный вариант:

quoted form of ......

получается:

'/Volumes/Test data/Хороший персонаж (версия 3)'

Он просто добавляет в начале и в конце одиночные кавычки но с папкой не работает. A если написать в формате :

/Volumes/Test\ data/Хороший\ персонаж\ \(версия\ 3\)

То отрабатывает без проблем. Не подскажите в чём глюк? А то не хочется целый блок составлять, который искуственно слэши добавлять будет Frown
Но за ссылочки отдельное Спасибо!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Daniel



Reputation: +348    

Зарегистрирован: 14.07.2001
Сообщения: 9072
Откуда: Украина

СообщениеДобавлено: Fri Dec 06, 2013 11:16
Ответить с цитатой

avas писал(а):
не работает

Не надо пользоваться такими выражениями, пожалуйста!
Если что-то (AppleScript? bash? rsync?) не хочет с чем-то работать — оно обычно сообщает о причинах.

Проверил на папке с именем «Хороший персонаж (версия 3)» — у меня всё работает.

Кстати, существует gui-версия rsync, которой, возможно, могли бы пользоваться ваши юзеры: http://arrsync.sourceforge.net/ (а также значительное количество других программок для синхронизации, см. MacUpdate и Mac App Store).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
avas



Reputation: 0    

Зарегистрирован: 02.05.2009
Сообщения: 20

СообщениеДобавлено: Fri Dec 06, 2013 23:17
Ответить с цитатой

Спасибо!
исходя из ваших слов, проблема гдето на наших маках.
Буду искать.
С уважением
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Neo



Reputation: +675    

Зарегистрирован: 27.07.2001
Сообщения: 34644
Откуда: МакЦентр

СообщениеДобавлено: Sat Dec 07, 2013 12:17
Ответить с цитатой

avas писал(а):
aple

avas писал(а):
sckript

Глаза болят от такого…

_________________
Eighty percent of the people in the world are fools and the rest of us are in danger of contamination.
Hello, Dolly! (1969)

Алексей @ МакЦентр

Москва, Школьная, 47
+7 (495) 956-6888
www.McCentre.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора ICQ Number
Показать сообщения:   
Начать новую тему   Ответить на тему Список форумов MacCentre.ru Форум » Программирование и Beta-тестирование Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы можете добавлять приложения в этом форуме
Вы можете скачивать файлы в этом форуме


Связь с администраторами

Powered by phpBB © 2001, 2005 phpBB Group