Substituindo subString em uma matriz com bash

0

O que eu tenho:

array[0]="Programm is Running"
array[1]="programm is down"

O que eu quero:

array[0]="Programm is \e[0;32mRunning\e[0m"
array[1]="programm is \e[0;31mDown\e[0m"

Isso tornará as coisas um pouco mais coloridas (usando o comando echo -e), pelo menos eu espero que sim. Eu tentei substituir isso com:

array[$i]=${array[$i]//"running"/"\e[0;32mrunning\e[0m"}
array[$i]=${array[$i]//"down"/"\e[0;31mdown\e[0m"}

Isso não funcionou. Mensagem de erro:

0403-011 The specified substitution is not valid for this command.

Por que isso acontece? O que preciso diferente?

    
por Dave 12.05.2014 / 15:00

1 resposta

0

parece que você tem o caso errado Correndo vs correndo, o seguinte funciona para mim

    array[0]="Programm is running"
    array[1]="Programm is down"

            for i in 0 1; do
            array[$i]=${array[$i]//"running"/"\e[0;32mrunning\e[0m"}
            array[$i]=${array[$i]//"down"/"\e[0;31mdown\e[0m"}
    done
    echo ${array[0]}
    echo ${array[1]}

produz

    Programm is \e[0;32mrunning\e[0m
    Programm is \e[0;31mdown\e[0m

com echo -e em vez de apenas echo, ele produz o texto colorido correto, no entanto, isso seria mais fácil de ser corrigido manualmente do que corrigi-lo toda vez que for executado.

    
por 12.05.2014 / 15:29