bash 関数で複数行変数を 1 行ずつ処理します。

bash 関数で複数行変数を 1 行ずつ処理します。

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"

ここに画像の説明を入力してください。

関連情報