我得到了什么:
array[0]="Programm is Running"
array[1]="programm is down"
我想要的是:
array[0]="Programm is \e[0;32mRunning\e[0m"
array[1]="programm is \e[0;31mDown\e[0m"
这将使事情变得更加丰富多彩(使用命令echo -e
),至少我希望如此。我尝试用以下代码替换它:
array[$i]=${array[$i]//"running"/"\e[0;32mrunning\e[0m"}
array[$i]=${array[$i]//"down"/"\e[0;31mdown\e[0m"}
这不起作用。错误消息:
0403-011 指定的替换对于该命令无效。
为什么会发生这种情况?我需要做哪些改变?
答案1
看来你搞错了 Running 与 running 的情况,以下对我有用
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]}
生产
Programm is \e[0;32mrunning\e[0m
Programm is \e[0;31mdown\e[0m
使用 echo -e 而不是仅仅使用 echo,它会生成正确的彩色文本,但是,手动修复比每次运行时重新修复更容易。