将多个字符串+标准输出连接成 lolcat(在 fish 中)

Concatenating multiple strings+stdouts into lolcat (in fish)

我正在尝试学习 shell 脚本,尤其是 fish 脚本。 但是,bash.

的问题可能是相同的

我想要完成的是将几个字符串与 screenfetch 的标准输出连接起来,然后将所有这些都放入 lolcat。

现在我有以下内容:

screenfetch  -n | lolcat
set test "test"
echo $test | lolcat

这可行,但是 lolcat 被调用了两次,因此配色方案不匹配。性能方面它也是糟糕的代码。

我想做的是将来自 screenfetch 的标准输出与我的 $test 变量连接起来,并将它作为一个单独的包丢给 lolcat。

我可以这样做:

set sf (screenfetch -n)
set test "test"
set all $sf$test
echo $all | lolcat

但是当存储到 var 中时,来自 screenfetch 的标准输出会完全混乱(格式丢失)。

有什么建议吗?

您可以将两个命令组合在一起,并将连接的输出通过管道传输到 lolcat。 bash 和 fish:

之间分组命令的语法不同
# /bin/bash
{ screenfetch -n; echo "$test"; } | lolcat

# /usr/bin/fish
begin screenfetch -n; echo $test; end | lolcat