bash - 将多个字符串+标准输出连接成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 时会被完全打乱(格式丢失)。
有什么建议吗?
解决方案
您可以将两个命令分组并将连接的输出通过管道传输到lolcat
. bash 和fish 对命令进行分组的语法不同:
# /bin/bash
{ screenfetch -n; echo "$test"; } | lolcat
# /usr/bin/fish
begin screenfetch -n; echo $test; end | lolcat
推荐阅读
- css - 将样式应用于除第一种类型的元素之外的所有元素
- django - 在相关对象中批量创建
- google-signin - 谷歌登录谷歌助手的对话流程给出 500 内部服务器错误?
- webrtc - WebRTC 视频流错误 - scaledrone
- python - 用python制作黑白文件夹
- java - Spring Data JPA - 带有规范的查询(加入和输入)
- isabelle - Isabelle:如果一个会话需要多个父会话怎么办?
- sqlite - 在 sqliteman 中加载扩展
- javascript - 更改后无法加载 Django javascript
- r - 在没有 Shiny 服务器的 Docker 中运行 Shinyapp