Macos 如何创建Applescript以执行终端命令和密码
我到处找了找,但找不到适合我的问题的东西 我想创建一个脚本来复制以下内容:Macos 如何创建Applescript以执行终端命令和密码,macos,terminal,passwords,applescript,osx-mavericks,Macos,Terminal,Passwords,Applescript,Osx Mavericks,我到处找了找,但找不到适合我的问题的东西 我想创建一个脚本来复制以下内容: sudo kextload /System/Library/Extensions/AppleHDA.kext 开放式终端 执行以下命令: sudo kextunload /System/Library/Extensions/AppleHDA.kext 然后让它为我输入我的OSX管理员密码 然后执行以下操作: sudo kextload /System/Library/Extensions/AppleHDA.kext
sudo kextload /System/Library/Extensions/AppleHDA.kext
sudo kextunload /System/Library/Extensions/AppleHDA.kext
sudo kextload /System/Library/Extensions/AppleHDA.kext
谢谢 问题注释中的提示是正确的(在[Apple]脚本编辑器中,选择
文件>打开字典…
,选择StandardAdditions.osax
,然后搜索do shell Script
以查看完整的语法),但需要注意的是do shell Script
不会打开终端窗口;相反,它将运行shell命令HINDED并返回其结果——这通常是可取的:
do shell脚本的返回值是shell命令的
输出stdout
- 如果shell命令返回一个非零的退出代码,AppleScript将抛出一个错误,错误消息将包含命令的
输出stderr
- [建议使用]让AppleScript显示密码提示:
将shCmds设置为“kextunload/System/Library/Extensions/AppleHDA.kext;
kextload/System/Library/Extensions/AppleHDA.kext“
#这将提示输入管理员密码,然后执行命令
#好像他们是用sudo跑的。
使用管理员权限执行shell脚本shCmds
- [出于安全原因,不建议使用]将密码作为参数传递:
将shCmds设置为“kextunload/System/Library/Extensions/AppleHDA.kext;
kextload/System/Library/Extensions/AppleHDA.kext“
#将“{myPassword}”替换为您的实际密码。
#这些命令将像使用“sudo”执行一样运行。
是否执行shell脚本shCmds
用户名(系统信息)密码“{myPassword}”的短用户名
具有管理员权限
如前所述,如果出现问题—无论是由于无效密码、取消的密码对话框还是返回非零退出代码的shell命令—都会引发运行时错误。
下面是一个捕获它并通过display alert
报告的示例
试试看
使用管理员权限执行shell脚本shCmds
关于错误errMsg编号errNo
显示警报“正在执行”&shCmds&“失败,错误代码”&
errNo&”和以下消息:“&errMsg”
回来
结束尝试
问题注释中的提示是正确的(在[Apple]脚本编辑器中,选择文件>打开字典…
,选择StandardAdditions.osax
,然后搜索do shell Script
以查看完整的语法),但是需要注意的是,do shell script
不会打开终端窗口;相反,它将运行shell命令HINDED并返回其结果——这通常是可取的:
do shell脚本的返回值是shell命令的
输出stdout
- 如果shell命令返回一个非零的退出代码,AppleScript将抛出一个错误,错误消息将包含命令的
输出stderr
- [建议使用]让AppleScript显示密码提示:
将shCmds设置为“kextunload/System/Library/Extensions/AppleHDA.kext;
kextload/System/Library/Extensions/AppleHDA.kext“
#这将提示输入管理员密码,然后执行命令
#好像他们是用sudo跑的。
使用管理员权限执行shell脚本shCmds
- [出于安全原因,不建议使用]将密码作为参数传递:
将shCmds设置为“kextunload/System/Library/Extensions/AppleHDA.kext;
kextload/System/Library/Extensions/AppleHDA.kext“
#将“{myPassword}”替换为您的实际密码。
#这些命令将像使用“sudo”执行一样运行。
是否执行shell脚本shCmds
用户名(系统信息)密码“{myPassword}”的短用户名
具有管理员权限
如前所述,如果出现问题—无论是由于无效密码、取消的密码对话框还是返回非零退出代码的shell命令—都会引发运行时错误。
下面是一个捕获它并通过display alert
报告的示例
试试看
使用管理员权限执行shell脚本shCmds
关于错误errMsg编号errNo
显示警报“正在执行”&shCmds&“失败,错误代码”&
errNo&”和以下消息:“&errMsg”
回来
结束尝试
查看“do shell script”命令(来自“StandardAdditions”)-在AppleScript编辑器中,打开“Library”(参见菜单“窗口”)并双击“StandardAdditions”。在搜索字段中输入“do shell”。检查“do shell脚本”命令(来自“StandardAdditions”)—在AppleScript编辑器中,打开“库”(请参见菜单“窗口”)并双击“StandardAdditions”。在搜索字段中输入“do shell”。感谢@mklement0的详细回复。我会尝试一下,然后再报告。添加错误处理看起来像什么?(很抱歉,我对所有这些都不熟悉)。我尝试了一下,复制并粘贴了第一个代码段和错误处理代码段,然后单击“运行”。结果是我失去了声音控制,我重新启动了它。我可能做错了什么。知道它可能是什么吗?@Adrius:如果你在终端上以交互方式运行相同的命令,它能工作吗?卸载和加载之间的延迟是否有帮助(插入sl)