好的,所以我的 bash_profile 中有一个很棒的小函数,当我从终端调用它时,它运行良好(它会打开一个新的 Firefox 窗口而不是新选项卡):
function firefoxNewWindow() {
/usr/bin/env osascript <<-EOF
tell application "System Events"
if (name of processes) contains "Firefox" then
tell application "Firefox" to activate
keystroke "n" using command down
else
tell application "Firefox" to activate
end if
end tell
EOF
}
现在我创建一个文本文件并将其放在我的 OSX Lion 桌面上,并以 .command 为扩展名(firefoxNewWindow.command),并在其中输入以下文本:
firefoxNewWindow
然后我通过执行以下操作确保它是可执行的:
chmod a+x desktop/firefoxNewWindow.command
现在,当我双击桌面上的命令文件来运行它时,出现此错误:
~ >/Users/myname/Desktop/firefoxNewWindow.command ; exit;
/Users/myname/Desktop/firefoxNewWindow.command: line 1: firefoxNewWindow: command not found
logout
那么,当该函数位于 bash_profile 中并且可从终端提示符下运行时,为什么会出现“命令未找到”的错误?由于这是 bash_profile 中的函数,我假设不需要指定路径,因为它应该从任何路径运行。关于如何实现这一点,您有什么想法吗?
谢谢
答案1
我不知道为什么这里没有这些功能,尽管~/.bash_profile
是来源。您可以通过将另一个命令放入您的 中.bash_profile
并在运行.command
文件时查看其执行情况来测试这一点。
如果你真正想要的只是一个可以双击的项目来启动此功能,请打开Automator.app从应用程序/实用程序并创建一个新的应用。
拖运行 AppleScript从左侧窗格中,粘贴 AppleScript 命令。
将其保存为文件,例如Open Firefox.app
,任何您想要的地方。
当然,你也可以使用运行 Shell 脚本代替运行 AppleScript如果您只需要简单的 shell 脚本命令。