如何从 OSX Lion 上的桌面别名 .command 文件运行 bash_profile 函数?

如何从 OSX Lion 上的桌面别名 .command 文件运行 bash_profile 函数?

好的,所以我的 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 脚本命令。

相关内容