如果无线网络被删除,是否执行bash命令?

如果无线网络被删除,是否执行bash命令?

作为我为 OS X 编写的 plist 的一部分,如果成功删除无线网络,我需要执行“say”命令:

networksetup -removepreferredwirelessnetwork

如果网络未被删除,则会显示:

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

我目前有:

networksetup -removepreferredwirelessnetwork en1  &&  say "Network deleted"

en1网络接口名称在哪里),但即使网络没有被删除,仍然会显示“网络已删除”。

有什么想法吗?

答案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"

相关内容