在 bash 函数中逐行处理多行变量

在 bash 函数中逐行处理多行变量

是否可以在 bash 函数中处理多行变量?假设我有一个函数theone,并且我向它传递了一个多行变量。

var="
This
is a 
multiline
variable"

theone "$var"

我想var根据某些匹配模式对特定线条进行着色,而不使用awksed

答案1

作为首发:

#!/bin/bash

theone() {
    printf -- '%s\n' "$var" | while IFS= read -r line; do
        tput setaf $((++c))
        echo "$line"
        ((c==8)) && c=0
    done
    tput sgr0
}

theone "$var"

在此输入图像描述

相关内容