还在学习 shell 脚本和 ZSH。但是想知道是否有人知道如何创建一个简单对象数组,json 类型的对象/哈希,然后以不同颜色的列格式打印每个对象的属性。
我想在我的 zsh 插件中创建一个特定的函数,以非常精确的方式打印到我的终端。
开放式问题:
1.) 如何打印不同颜色的特定字符串
2.) 如何定义具有多个键/值对的基本对象数组
以下伪代码有望阐明我正在尝试做的事情。
function display-collection() {
collection=(
{param1: foo1, param2: bar1, param3: baz1 }
{param1: foo2, param2: bar2, param3: baz2 }
{param1: foo3, param2: bar3, param3: baz3 }
{param1: foo4, param2: bar4, param3: baz4 }
{param1: foo5, param2: bar5, param3: baz5 }
{param1: foo6, param2: bar6, param3: baz6 }
)
print -l $collection
}
使上述函数以彩色吐出内容到终端
foo1 (RED TEXT) bar1 (DEFAULT COLOR) baz1 (YELLOW COLOR)
foo2 (RED TEXT) bar2 (DEFAULT COLOR) baz2 (YELLOW COLOR)
foo3 (RED TEXT) bar3 (DEFAULT COLOR) baz3 (YELLOW COLOR)
foo4 (RED TEXT) bar4 (DEFAULT COLOR) baz4 (YELLOW COLOR)
foo5 (RED TEXT) bar5 (DEFAULT COLOR) baz5 (YELLOW COLOR)
foo6 (RED TEXT) bar6 (DEFAULT COLOR) baz6 (YELLOW COLOR)
换句话说,像这样的列文本,每列颜色协调,foo 值将是红色,bar 值将是默认值,baz 值将是黄色
foo1 bar1 baz1
foo2 bar2 baz2
foo3 bar3 baz3
foo4 bar4 baz4
foo5 bar5 baz5
foo6 bar6 baz6
如果我可以将对齐格式化为带有任意分隔符/分隔符的有序列,则可以加分。
foo1 : bar1 = baz1
string1 : some string = another string
string2 : some longer string = another longer string
helloworld : This is a function = it prints helloworld