Я хочу установить fish_greeting
в date --rfc-2822 | cowsay -f tux | lolcat
(не суди меня). Когда я бегу date --rfc-2822 | cowsay -f tux | lolcat
в интерактивном режиме я получаю правильный вывод (дата в речевом пузыре над смокингом в цветах радуги). Тем не менее, когда я set fish_greeting date --rfc-2822 | cowsay -f tux | lolcat
Я получаю этот вывод:
_
< >
-
\
\
.--.
|o_o |
|:_/ |
// \ \
(| | )
/'\_ _/`\
\___)=(___/
date --rfc-2822
(в цвете, конечно). Почему не работает первая труба?
cowsay $(/bin/date)
cowsay (*command*)
(это работает). Тем не менее, я думаю, что проблема в том, что первая команда отображается, а не выполняется, потому что новый выводcowsay -f tux Sun, 01 May 2016 11:55:07 -0700
Ответы:
fish_greeting может быть функцией
источник
fish_greeting
может быть литеральной строкой или функцией. Это должна быть функция, если вы выполняете такие вещи, как выполнение оператора, который включает в себя каналы (или любую внешнюю команду в этом отношении). Увидеть __fish_config_interactive.fish ,