Изменение расположения MacOS на основе SSID - невозможно заставить скрипт запускаться автоматически - PullRequest
1 голос
/ 04 февраля 2020

Я пытаюсь запустить этот проект GitHub и запустить его на моей Ma c, с целью автоматической смены сетевого расположения при переключении физического местоположения (на основе SSID, который я использую). подключен к). У меня есть две проблемы, которые я до сих пор не могу решить.

  1. Я следовал инструкциям по обновлению соответствующих имен местоположений и связанных с ними SSID, и в основном все работает так, как должно. Однако есть один SSID, в имени которого есть пробел, и когда я подключаюсь к этому SSID, он возвращается к расположению «Automati c», так как не нашел подходящий SSID в списке. Я обновил скрипт в соответствии с приведенными ниже предложениями, чтобы поставить кавычки во всех местах, где они отсутствуют, но проблема, как представляется, заключается в получении SSID в первую очередь. Файл журнала повторяет новое имя SSID, и если мой SSID был my wifi, он просто повторяет New SSID Found: my. Поэтому мне, вероятно, просто нужно немного изменить строку кода, которая получает SSID (ниже), но я не уверен, как.

SSID=$(/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -I | awk '/ SSID:/ {print $2}')

Я завершил автоматическую установку (выполнил ./install.sh в соответствующем каталоге), и она поместила все файлы в соответствующие места. Тем не менее, он не запускается автоматически, когда я переключаю SSID. Я могу дважды щелкнуть по исполняемому файлу в любой точке, и он запустится и выберет правильное местоположение, но он не запустится автоматически, что и является главной целью упражнения. Я где-то пропустил шаг?

Я чрезвычайно новичок в написании скриптов для ma c и GitHub в целом; мой предыдущий опыт все на Windows. Так что я, наверное, упускаю из виду кое-что действительно простое, но у меня просто нет навыков, чтобы разобраться, где это.

Запуск macOS Catalina 10.15.2

1 Ответ

1 голос
/ 05 февраля 2020

Приятно спать! Это должно работать, если вы измените awk, чтобы использовать двоеточие и пробел в качестве разделителя полей:

SSID=$(AIRPORTTHING| awk -F ': ' '/ SSID:/ {print $2}')

Если это не так, это также должно работать:

SSID=$(AIRPORTTHING| sed -n 's/^ *SSID: //p')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...