fish shell中的环境变量管道不执行第一个命令?


0

我想设置 fish_greetingdate --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

(当然是彩色的)。为什么第一个管道不工作?


我不知道鱼是什么,但你有没有尝试在命令中输入完整的路径?看起来它只是回显命令而不是执行它
djsmiley2k

@ djsmiley2k fishshell.com 。我尝试了/ usr / bin / date,但是它给出了相同的输出,但是在底部改为/ usr / bin / date。
ZuluDeltaNiner

很奇怪,我只是快速玩cowsay(我不打算安装fishshell atm,因为没有时间),但让它'工作'与 cowsay $(/bin/date)
djsmiley2k

@ djsmiley2k在鱼中相当于 cowsay (*command*) (这是有效的)。但是,我认为问题是第一个命令正在回显,而不是执行,因为新的输出是 cowsay -f tux Sun, 01 May 2016 11:55:07 -0700
ZuluDeltaNiner

Answers:


2

fish_greeting 可以是一个功能

function fish_greeting; date --rfc-2822 | cowsay -f tux | lolcat; end

澄清: fish_greeting 可以是文字字符串或函数。如果您正在执行包含管道(或任何外部命令)的语句,那么它必须是一个函数。看到 __fish_config_interactive.fish
Kurtis Rader
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.