A variável Pipe in Environment no fish shell não executa o primeiro comando?

0

Eu quero definir fish_greeting para date --rfc-2822 | cowsay -f tux | lolcat (não me julgue). Quando eu corro date --rfc-2822 | cowsay -f tux | lolcat interativamente, recebo a saída apropriada (a data em um balão de fala acima do tux nas cores do arco-íris). No entanto, quando eu set fish_greeting date --rfc-2822 | cowsay -f tux | lolcat, Eu recebo esta saída:

 _ 
<   >
 - 
   \
    \
        .--.
       |o_o |
       |:_/ |
      //   \ \
     (|     | )
    /'\_   _/`\
    \___)=(___/

date --rfc-2822

(em cores, claro). Por que o primeiro tubo não está funcionando?

ZuluDeltaNiner
fonte
Eu não sei o que é peixe, mas você já tentou colocar o caminho completo até o momento no comando? Parece que está apenas ecoando o comando em vez de executá-lo
djsmiley2k
@ djsmiley2k fishshell.com . Eu tentei / usr / bin / date, mas isso deu a mesma saída, mas com / usr / bin / date na parte inferior.
ZuluDeltaNiner
Estranho, eu apenas tive um jogo rápido com cowsay (eu não vou instalar o atum fishshell porque não tenho tempo) mas consegui 'trabalhar' com cowsay $(/bin/date)
djsmiley2k
@ djsmiley2k Em peixes, o equivalente é cowsay (*command*) (isso funciona). No entanto, acho que o problema é que o primeiro comando está sendo ecoado, não executado, porque a nova saída é cowsay -f tux Sun, 01 May 2016 11:55:07 -0700
ZuluDeltaNiner

Respostas:

2

fish_greeting pode ser uma função

function fish_greeting; date --rfc-2822 | cowsay -f tux | lolcat; end
glenn jackman
fonte
Esclarecimento: fish_greeting pode ser uma string literal ou uma função. Tem que ser uma função se você estiver fazendo coisas como executar uma instrução que inclua pipes (ou qualquer comando externo). Vejo __fish_config_interactive.fish .
Kurtis Rader