2015-05-04 3 views
2

У меня есть программа, написанная в swift, и мне было интересно, как я могу ссылаться на переменную (String) в моей команде терминала.Как я могу использовать переменную в AppleScript?

Это то, что я пробовал, но у меня нет успеха.

var clientUsed : String = "Safari" 
    var killApp: NSAppleScript? 
    let killCommand = "do shell script \"killall " + clientUsed\" 
    killApp = NSAppleScript(source:killCommand) 

Как это правильно структурировать?

Команда должна сказать следующее:

killall Safari 

Где сафари переменная выбирается пользователем.

Я предполагаю, что кто-нибудь с быстрым или obj-c знанием сможет мне помочь в этом.

ответ

3

Самый простой способ - через интерполяцию строк. Внутри вашей строкового литерала, заключите переменную в \() иметь это строковое представление вставляется в этой точке:

let killCommand = "do shell script \"killall \(clientUsed)\"" 

Ваша оригинальная идея использования + также будет работать (менее аккуратный, хотя), но вам нужно добавить дополнительную строку literal на конце:

let killCommand = "do shell script \"killall " + clientUsed + "\"" 
+0

Отлично, спасибо! Отличное объяснение :) – DanTdd

+0

Я пробовал этот же метод для моей другой команды, но это не сработало. Правильно ли я напечатал его? «Сделать сценарий оболочки» открывать -hide -background/Applications/\ (clientUsed) .app \ "" – DanTdd

+0

отсутствует перед '' 'перед открытым парнем (то есть' 'make shell script \" open --hide --background/Applications/\ (clientUsed) .app \ "" ') –

Смежные вопросы