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?
cowsay $(/bin/date)
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
Respostas:
fish_greeting pode ser uma função
fonte
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 .