Отключите громкость сразу после ее вставки, если ее имя «XYZ»

У меня есть USB-модем, который устанавливается как XYZ (который содержит программное обеспечение Dialer и Readme), когда он вставлен. Чтобы подключиться к нему, я должен извлечь его, а затем подключить его, используя ppp dialer.

Скажем, он монтируется под именем / Volumes / XYZ

Я хочу сделать что-то вроде, если я вставляю USB-устройство и монтируется под именем XYZ, я хочу, чтобы он был немедленно удален.

Как мне это сделать?

Я когда-то делал что-то подобное, где всякий раз, когда был установлен диск с определенным именем, скрипт сразу же запускался, чтобы синхронизировать содержимое набора папок с диском.

Чтобы сделать что-то подобное здесь, сценарий должен выглядеть следующим образом:

#!/bin/bash if [ -d /Volumes/XYZ ]; then echo “Ejecting XYZ!”; umount /Volumes/XYZ exit; fi 

Сохраните его где-нибудь, ваш каталог ~/bin/ если он у вас есть, или, возможно, ~/Library/Scripts/ , просто запомните, где.

Вторая часть головоломки – LaunchAgent, которая будет обрабатывать событие всякий раз, когда будет установлен диск:

 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.superuser.226504.example</string> <key>ProgramArguments</key> <array> <string>/Path/To/Script/unmount-modem.sh</string> </array> <key>QueueDirectories</key> <array/> <key>StartOnMount</key> <true/> <key>WatchPaths</key> <array/> </dict> </plist> 

Это нужно сохранить как .plist (названный аналогично строке, используемой вместо «com.superuser.226504.example») и сохраненной в ~/Library/LaunchAgents . Вы можете загрузить его с терминала через launchctl load ~/Library/LaunchAgents/pathtoplist или выйти из системы / войти в систему, и она должна загрузиться, если все настроено правильно.

Вы можете использовать следующий AppleScript:

 on adding folder items to this_folder after receiving added_items set the item_count to the number of items in the added_items if the item_count is greater than 1 then display dialog "Multiple additions, I can't handle that!" else set the volume_name_raw to (item 1 of the items in the added_items as text) set AppleScript's text item delimiters to ":" set volume_name to text item 1 of volume_name_raw as text if volume_name is "Carbon Copy Cloner" then do shell script "hdiutil detach '/Volumes/" & volume_name & "'" end if end if end adding folder items to 

На основе действия папки «уведомление о новом элементе» от Apple

Измените имя тома, который вы хотите извлечь в следующей строке:

 if volume_name is "Carbon Copy Cloner" then 

Чтобы активировать его:

  1. Откройте /Applications/Utilities/AppleScript Editor и вставьте сценарий выше.
  2. Сохраните его как скрипт (например, eject.scpt ) в ~/Library/Scripts/Folder Action Scripts/ .
  3. Закройте редактор AppleScript.
  4. Щелкните правой кнопкой мыши любую папку в Finder, выберите « Услуги».
  5. Отключите диалоговое окно листа.
  6. Установите флажок «Включить действия папки»
  7. Нажмите кнопку + в левом нижнем углу и нажмите Command-Shift-G в появившемся диалоговом окне файла. Введите /Volumes . Не выбирайте элемент, просто нажмите OK .
  8. Выберите строку списка « Volumes и нажмите кнопку « + под правым боковым списком.
  9. Выберите eject.scpt в диалоговом окне листа и нажмите « Прикрепить»
  10. Закройте вкладку «Действия с папкой» .

Готово!

  • Я только что создал свой внешний жесткий диск и дал ему два раздела. Какие файлы они создали? Mac OS X
  • Cocoapods с Xcode 6 и 10.10 Yosemite
  • Synergy, клиент OSX, сервер Windows 7 - нет мыши на клиенте
  • Как сделать одно окно на Mac OS X липким для каждого рабочего пространства?
  • Interesting Posts

    Android: Как установить уровень масштабирования вида карты в радиусе 1 км вокруг моего текущего местоположения?

    Запись в stream файлов, возвращенный из getResourceAsStream ()

    ViewPager как круговая очередь / упаковка

    Как установить приоритет сетевых подключений в Ubuntu?

    Почему переопределить operator ()?

    Преобразование символа в числовое значение ASCII в java

    Как разблокировать базу данных SQLite?

    Как я могу сделать все папки Windows 7 в одном режиме просмотра?

    Как найти последний измененный файл в каталоге на Java?

    В Java разница между пакетом private, public, protected и private

    Как удалить верхний и нижний колонтитулы с определенных страниц в Microsoft Word

    Как собрать zip-файл, который был отправлен по электронной почте в нескольких частях?

    TrafficStats Api android и расчет ежедневного использования данных

    Использует ли перехват целых чисел без знака?

    Связь между Android Java и Phonegap Javascript?

    Давайте будем гением компьютера.