Applescript:运行终端命令和保存输出

时间:2017-08-23 21:23:22

标签: variables terminal applescript

所以,我试图编写一个脚本来删除无线网络及其相关的钥匙串凭证。

this.props.question

结束告诉 退出

我遇到麻烦的地方是用该命令的输出设置该变量。该命令在终端中运行,但每当我尝试编译它时,都会抛出以下错误

  

语法错误:预期"""但发现了未知的令牌

它在/ device:\'之后找到了这个。在'之间     我无法弄清楚遗漏了什么。如果我添加"它们之间只是将终端丢弃到>     直接我第一次涉足AppleScript而不是我的第一语言。我想我已经盯着它看太久了。

1 个答案:

答案 0 :(得分:0)

这不是一个完整的答案,因为我不太熟悉security命令,虽然我相信你需要在sudo命令前加上它来修改钥匙扣。有关security命令的互联网上有很多好的信息。我读了很多,但我的钥匙串中没有任何东西要删除,所以我无法在这方面进行测试。

以下内容涵盖了networksetup命令,您可能还需要在终端中使用sudo,但在AppleScript中添加with administrator privileges命令末尾的do shell script “,如果有必要,首选无线网络。

您似乎试图删除所有首选无线网络,这可以使用以下命令直接在终端中完成:

networksetup -removeallpreferredwirelessnetworks $(networksetup -listallhardwareports | awk '/Wi-Fi/{getline; print $2}')

如果你想在AppleScript中做同样的事情,例如:

do shell script "networksetup -removeallpreferredwirelessnetworks $(networksetup -listallhardwareports | awk '/Wi-Fi/{getline; print $2}')"

如果你想在bash脚本中使用它,那么使用bash shebang上面的行,例如:

#!/bin/bash
networksetup -removeallpreferredwirelessnetworks $(networksetup -listallhardwareports | awk '/Wi-Fi/{getline; print $2}')

将其保存在没有扩展名的纯文本文件中,并使其可执行,例如chmod u+x filename其中filename是您保存的任何内容。然后在终端./filename/path/to/filename中使用它,如果它未保存在PATH环境变量中定义的位置。

如果您希望仅针对特定网络执行此操作,则可以循环访问列表,而不是每个网络的一行。如果您需要帮助,请告诉我们。