Como executar a função bash_profile a partir do arquivo .command do desktop alias no OSX Lion?

0

Ok, então eu tenho essa grande função no meu bash_profile, que funciona muito bem quando eu chamo do Terminal (ele abre uma nova janela do Firefox em vez de uma nova aba):

    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
    }

Agora, crio um arquivo de texto e o coloco em meu desktop OSX Lion com uma extensão .command (firefoxNewWindow.command) e coloco este texto nele:

    firefoxNewWindow

Eu então me certifico de que é executável fazendo isso:

    chmod a+x desktop/firefoxNewWindow.command

Agora, quando clico duas vezes no arquivo de comando na área de trabalho para executá-lo, recebo este erro:

    ~ >/Users/myname/Desktop/firefoxNewWindow.command ; exit;
    /Users/myname/Desktop/firefoxNewWindow.command: line 1: firefoxNewWindow: command not found
    logout

Então, por que estou recebendo um comando não encontrado quando a função está no bash_profile e funciona no prompt do terminal? Como esta é uma função em bash_profile, estou assumindo que nenhum caminho precisa ser especificado, pois ele deve ser executado em qualquer caminho. Alguma idéia de como fazer isso funcionar?

Obrigado

    
por jsherk 05.03.2012 / 23:15

1 resposta

2

Não sei porque funções não estão disponíveis aqui, mesmo que ~/.bash_profile seja originado. Você pode testar isso colocando outro comando em seu .bash_profile e vendo-o executado quando executar o arquivo .command .

Se tudo o que você realmente quer é ter um item que pode ser clicado duas vezes para iniciar essa função, abra Automator.app em Aplicativos / Utilitários e crie um novo < em> Application .

Arraste Executar AppleScript no painel esquerdo e cole o comando AppleScript.

Salvarcomoumarquivo,porexemploOpenFirefox.app,ondevocêquiser.

Naturalmente, você também pode usar Run Shell Script em vez de Executar o AppleScript se precisar apenas de comandos de script de shell simples.

    
por 05.03.2012 / 23:39