有一个非常棒的 applescript 叫做“在这里打开终端”(http://www.entropy.ch/software/applescript/) 您可以将其添加到 Finder 的工具栏中,并在您想要启动设置为该目录的终端控制台时单击它。
有时我需要成为 root,因此我最终启动终端,执行类似的操作sudo -i
,然后我必须更改返回上一目录因为 sudo 命令让我进入 /var/root。
我使用 sudo -i 因为我喜欢它加载别名/bash 配置文件之类的东西。
该脚本是 applescript,下面是其工作原理的重要部分:
... 将 cmd 设置为“cd ”& the_path 的引用形式 & “ && echo $'\\ec'” ... 告诉应用程序“终端” 启用 使用命令cmd执行脚本
我如何才能以 root 身份加载它?
答案1
事实上,弄清楚这一点相当复杂,但我最终将其添加到我的/etc/profile
文件中:
目录=`pbpaste` 如果 [ -d "$directory" ]; 那么 cd“$目录” 菲
之后我用了“在此打开终端”脚本并对其进行了简单修改,以便在启动终端之前将当前路径复制到剪贴板
告诉应用程序“Finder”将剪贴板设置为 the_path
然后我将sudo -i
激活终端的部分添加到代码中:
将 cmd 设置为“cd ”& the_path 的引用形式 & “ && echo $'\\ec' && sudo -i” 告诉应用程序“终端”
因此,路径将被复制到剪贴板,我可以使用图标来启动 applescript,然后当加载配置文件(对于 root)时,它将更改为目录。
答案2
您要访问的目录是什么?主目录别名 ('~') 不能以 root 身份使用,因此您可能需要使用绝对路径。
要使用 AppleScript 以 root 身份启动终端,您可以执行以下操作(未经测试!):
tell application "Terminal"
activate
tell application "System Events" to keystroke "sudo -i" & return
do script with command cmd
这将在运行更改打开的 Finder 目录的代码之前授予您管理员权限。如果您对所运行的脚本不够谨慎,这可能会非常危险。
更一般地,你可以使用如下代码让 AppleScript 执行 sudo 命令:
set shellOutput to do shell script cmd with administrator privileges
display dialog shellOutput
其中“cmd”是要运行的命令。(这还会显示代码结果的弹出窗口。)