Как использовать applecripts сделать shell скрипт без кавычек - PullRequest
0 голосов
/ 07 апреля 2019

У меня есть программа на bash, которая изменит мой показанный MAC-адрес.Я хочу превратить эту программу в appleScript, используя "do shell script".Однако всякий раз, когда я запускаю код в функции «do shell script», он не работает.Это странно, потому что это работает в терминале.

Это на моем компьютере Mac, и я считаю, что это проблема с необходимыми кавычками после функции "do shell script".Я попытался изменить порядок цитат, но он, похоже, не работает.

sudo ifconfig en0 ether "$(openssl rand -hex 6 | sed 's/../&:/g;s/:$//')"

Вот базовый код

do shell script "sudo ifconfig en0 ether "$(openssl rand -hex 6 | sed 's/../&:/g;s/:$//')"" with administrator privileges

Вот вариант AppleScript этого кода.

Ожидалось, что этот код изменит мой MAC-адрес, но вместо этого он вернул "ошибку -212"

1 Ответ

1 голос
/ 08 апреля 2019

Не знаю, что такое ошибка -212, но в AppleScript (двойная) кавычка используется для разделения строк, поэтому, чтобы использовать ее в строке, ее необходимо экранировать, например, с помощью обратной косой черты.

do shell script "ifconfig en0 ether \"$(openssl rand -hex 6 | sed 's/../&:/g;s/:$//')\"" with administrator privileges

Обратите внимание, что sudo не следует использовать с administrator privileges - см. Техническое примечание Apple TN2065 .

...