我在bash中有一个程序,它将更改我显示的MAC地址。我想使用“ do shell script”将该程序变成一个applescript。但是,每当我在“ do shell script”函数中运行代码时,它都将无法工作。这很奇怪,因为它可以在终端中工作。
这是在我的Mac计算机上,并且我认为这是“执行外壳脚本”功能后所需引号引起的问题。我尝试更改报价顺序,但似乎不起作用。
sudo ifconfig en0 ether "$(openssl rand -hex 6 | sed 's/../&:/g;s/:$//')"
这是基本代码
do shell script "sudo ifconfig en0 ether "$(openssl rand -hex 6 | sed 's/../&:/g;s/:$//')"" with administrator privileges
这是此代码的AppleScript变体。
预计此代码将更改我的MAC地址,但它返回了“错误-212”
答案 0 :(得分:1)
不确定什么错误-212,但是在AppleScript中,(双引号)用于分隔字符串,因此在 字符串中使用它需要用反斜杠转义,例如例子
do shell script "ifconfig en0 ether \"$(openssl rand -hex 6 | sed 's/../&:/g;s/:$//')\"" with administrator privileges
请注意,sudo
不应与administrator privileges
一起使用-请参阅Apple的Technical Note TN2065。