Convertendo o script bash em fish

4

Eu estou tentando adicionar os seguintes scripts bash para pescar, mas estou tendo problemas para acertar a sintaxe do fish. Aqui está o script original:

export MINION_INSTALL=$HOME/minion
export NOTES_HOME=$HOME/Notes
export INBOX=$NOTES_HOME/inbox

if [ -d "$MINION_INSTALL" ] ; then
    export PATH="$MINION_INSTALL:$PATH"
fi

source $MINION_INSTALL/aliases_for_minion

E este é o arquivo aliases_for_minion :

alias mn="minion"
alias icannotfind="minion --open --archive --full $@"
alias newnote="minion --new-note $@"
alias open="minion --open $@"
alias remind="minion --new-note --quick $@"
alias summary="minion --count inbox; minion --list --show-tags=False today; \
    minion --count next; minion --count soon; minion --count someday" 

O comando minion funciona bem se eu executar fish depois de iniciar o bash.

Qualquer ajuda seria muito apreciada!

    
por montauk 03.03.2014 / 23:17

1 resposta

7

Veja alguns exemplos de como isso seria no peixe:

set -x INBOX $NOTES_HOME/inbox
if [ -d "$MINION_INSTALL" ]
    set -x PATH $MINION_INSTALL $PATH
end

Observe a ausência das aspas, o que é especialmente importante na linha que define o PATH. Citando isso, todos os caminhos da lista seriam recolhidos para uma única entrada, o que não é o que você quer.

Os aliases são válidos em peixes, exceto o $ @ no final. fish tem argumentos como $argv , não $@ , mas o mais importante é que quaisquer argumentos são implicitamente anexados ao comando alias. Então você pode escrever:

alias newnote="minion --new-note"

Então, por exemplo, newnote foo bar se tornará minion --new-note foo bar

Se quiser, você pode verificar com functions newnote , que mostrará a função que o alias produziu.

Espero que ajude!

    
por 04.03.2014 / 00:15

Tags