首页 > 解决方案 > 将多个字符串+标准输出连接成lolcat(在鱼中)

问题描述

我正在尝试学习 shell 脚本,尤其是鱼脚本。但是,对于 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

但是 screenfetch 的标准输出在存储到 var 时会被完全打乱(格式丢失)。

有什么建议吗?

标签: bashshellfish

解决方案


您可以将两个命令分组并将连接的输出通过管道传输到lolcat. bash 和fish 对命令进行分组的语法不同:

# /bin/bash
{ screenfetch -n; echo "$test"; } | lolcat

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

推荐阅读