Сочетание клавиш для интерактивного скрипта bash

0

Я новичок в OSX и все, что мне нужно, это ярлык приложения в Dock, который открывает терминал и вводит первую команду и ждет, пока я предоставлю пароль. Вот скрипт, который я хочу запустить:

#!/usr/bin/env bash
sudo openconnect --user={username} {host}

А вот AppleScript, который я создал с помощью Automator:

do shell script "/usr/local/bin/openconnect --user={user} {host}" with administrator privileges

Но когда я запускаю его, он завершается, когда запрашивает имя пользователя и пароль. Что мне здесь не хватает?

norbertpy
источник

Ответы:

1

Хорошо, я думаю, что нашел ответ:

tell application "Terminal"
    do script "sudo /usr/local/bin/openconnect --user={user} {host}"
    activate
end tell
norbertpy
источник
1

Вместо использования апплета Automator / AppleScript для выполнения этой команды вы можете использовать Terminal для автоматического запуска этой команды при запуске.

  1. В Терминале перейдите в Терминал> Настройки.
  2. На панели «Общие» в разделе «Оболочки, открытые с помощью» выберите «Команда (полный путь):»
  3. Введите вашу команду в текстовом поле.

Теперь, когда откроется Терминал, эта команда будет выполняться автоматически.

Если вы хотите иметь возможность запустить Терминал и открыть окно, в котором команда не запускается автоматически, не обращайте внимания на вышеуказанные шаги и выполните следующие шаги:

  1. В Терминале перейдите в Терминал> Настройки.
  2. На панели «Профили» в списке слева найдите профиль по умолчанию и выберите его.
  3. В левом нижнем углу щелкните значок звездочки, и нажмите «Дублировать профиль». Пометьте дубликат чем-то, что указывает, что команда не будет выполняться в этом профиле.
  4. Вернувшись в профиль по умолчанию, под меткой запуска установите флажок «Выполнить команду:» и введите свою команду в текстовом поле. Убедитесь, что отмечен флажок «Run inside shell».
  5. Закройте терминал и перезапустите. Когда откроется окно, оно должно запустить вашу команду по умолчанию. Чтобы открыть окно терминала без выполнения команды, перейдите в «Оболочка»> «Новое окно»> «Имя дублированного профиля».
Томас Джонс
источник
Спасибо, но я хотел, чтобы в доке была иконка приложения, чтобы не открывать терминал. Возможно ли иметь панель запуска терминала в Dock, которая открывает определенный профиль по умолчанию?
Норбертпи
Кажется, в терминальном словаре нет ничего для объектов, связанных с профилем. Почему бы не поставить терминал в док, после выполнения второго набора шагов в моем ответе? Терминал откроется не смотря ни на что, так почему бы не закрепить его?
Томас Джонс
С моим подходом у меня есть терминал в доке, но у меня также есть другой значок в доке только для моего соединения vpn. Что если я хочу открыть терминал без запуска VPN? Сколько кликов мне нужно для переключения между профилями? Кроме того, VPN липкий. Он там, пока я подключен, поэтому я не могу использовать один и тот же терминал для других вещей. Мне нужно другое окно. Если я не сделаю два окна, которые будут открываться по умолчанию при запуске терминала.
Норбертпи