Описание тега aria
Зачем использовать автоматизаторы, когда вы можете остановиться в bash?
Я нашел очень классный скрипт под названием appify , которые будут мгновенно превратить других сценариев в реальных приложениях. Вы можете попробовать это несколько раз, чтобы понаблюдать за его поведением. Поскольку вы уже пользуетесь bash, я надеюсь, что этот ответ в качестве альтернативы именно то, что вы просите за это приемлемым.
Идея в том, чтобы разделить ваш скрипт в 3 различных сценариев:
1: запустить службу FTP на выбранный сетевой интерфейс только
#!/бин/Баш
#запускать FTP-сервиса
#судо="/usr/Бен/судо"
#помощью следущей="/бин/помощью следущей"
говорят="/usr/Бен/сказать"
networksetup="выполнить/sbin/networksetup"
хвост="/usr/Бен/хвост"
руководитель="/usr/Бен/руководитель"
вырезать="/usr/Бен/вырезать"
завиток="/usr/Бен/завиток"
currentInterface=$(networksetup -listnetworkserviceorder |хвост +2 |глава -Н1 |вырезать -С5-12)
getExternaladdress=$(завиток ipecho.net/plain)
SiriSays="сказать -в Саманта"
#судо -с помощью следущей нагрузки -Вт /система/библиотеки/LaunchDaemons/фтп.файл plist
#ваша команда начнет FTP на всех сетевых интерфейсах
если [ "$currentInterface" = "аэропорт" ];
тогда
networksetup -setpassiveftp аэропорт
еще
networksetup --setpassiveftp Ethernet на
интернет
$SiriSays "служба FTP был инициирован для"
Эхо $currentInterface |$SiriSays; $SiriSays "интерфейс"
$SiriSays "ваш внешний IP-адрес"
Эхо $getExternaladdress | $SiriSays
выход
2: остановить службу FTP
#!/бин/Баш
#остановить службу FTP
#судо="/usr/Бен/судо"
#помощью следущей="/бин/помощью следущей"
networksetup="выполнить/sbin/networksetup"
говорят="/usr/Бен/сказать"
хвост="/usr/Бен/хвост"
руководитель="/usr/Бен/руководитель"
вырезать="/usr/Бен/вырезать"
currentInterface=$(networksetup -listnetworkserviceorder |хвост +2 |глава -Н1 |вырезать -С5-12)
SiriSays="сказать -в Саманта"
#судо -с помощью следущей разгрузки -з /система/библиотеки/LaunchDaemons/фтп.файл plist
#ваша команда требует судо
если [ "$currentInterface" = "аэропорт" ];
тогда
networksetup -setpassiveftp от аэропорта
еще
networksetup -setpassiveftp локальных сетей от
интернет
$SiriSays "служба FTP был прекращен"
выход
3. проверьте состояние службы FTP
#!/бин/Баш
#проверить статус службы FTP
networksetup="выполнить/sbin/networksetup"
говорят="/usr/Бен/сказать"
хвост="/usr/Бен/хвост"
руководитель="/usr/Бен/руководитель"
вырезать="/usr/Бен/вырезать"
currentInterface=$(networksetup -listnetworkserviceorder |хвост +2 |глава -Н1 |вырезать -С5-12)
SiriSays="сказать -в Саманта"
если [ "$currentInterface" = "аэропорт" ];
тогда
networksetup -getpassiveftp аэропорт |$SiriSays
еще
networksetup -getpassiveftp сети Ethernet |$SiriSays
интернет
выход
Затем применить appify сценарий для них
То, что вы остаетесь с тремя маленькими приложениями, чтобы положить в свой док, который, при запуске, будет запустить или остановить службу FTP на нужный сетевой интерфейс, или сказать вам, что случилось с FTP, соответственно, и не должен требовать каких-пароль администратора. Я успел только тест первый, так что если они не работают, как я надеюсь, что они делают, тогда вы можете закомментировать или удалить мою логику и использовать ваш метод помощью следущей.