Выполнить команду bash, если беспроводная сеть удалена?

2

Как часть plist, который я пишу для OS X, мне нужно выполнить команду «сказать», если беспроводная сеть успешно удалена, используя:

networksetup -removepreferredwirelessnetwork

Если сеть не удалена, она выдает:

Network (network name) was not found in the preferred networks list

У меня сейчас есть:

networksetup -removepreferredwirelessnetwork en1  &&  say "Network deleted"

(где en1 имя сетевого интерфейса), но это все еще говорит "Сеть удалена", даже если сеть не удалена.

Мысли?

sbowenwilliams
источник

Ответы:

1

Это означает, что networksetup плохо себя ведет и возвращается 0 независимо от сообщения об ошибке. Этот код напечатает код возврата 0 в обоих случаях:

networksetup -removepreferredwirelessnetwork en1 ; echo $?

Решение состоит в том, чтобы проанализировать вывод:

networksetup -removepreferredwirelessnetwork en1 2>&1 | grep -q "was not found in the preferred networks list" && say "Network deleted"
pabouk
источник