gpt4 book ai didi

bash - bash脚本执行后终端的字体颜色发生变化

转载 作者:行者123 更新时间:2023-12-04 18:30:28 24 4
gpt4 key购买 nike

我有这样一个脚本:

#!/bin/bash

temp=`inxi -xxx -w`
regex="(Conditions:(.+))(Wind:(.+))Humidity"
[[ $temp =~ $regex ]]
echo ${BASH_REMATCH[1]}
echo ${BASH_REMATCH[3]}

它很酷,除了这样一个细节 - 字体颜色发生了变化,现在整个文本变成了蓝色。我该如何预防?

最佳答案

为避免蓝色输出:

#!/bin/bash

temp=$(inxi -xxx -w | sed -r 's/\x1B\[[0-9;]*[JKmsu]//g')
regex="(Conditions:(.+))(Wind:(.+))Humidity"
[[ $temp =~ $regex ]]
echo ${BASH_REMATCH[1]}
echo ${BASH_REMATCH[3]}

我所做的更改:
  • 反引号 ( ` ) 已弃用。使用$(command)而不是 `command` .
  • 您可以从 inxi 的输出中删除颜色代码与 sed正则表达式到我管它。


  • 正确使用蓝色输出:
    #!/bin/bash

    temp=$(inxi -xxx -w)
    regex="(Conditions:(.+))(Wind:(.+))Humidity"
    [[ $temp =~ $regex ]]
    echo ${BASH_REMATCH[1]}
    echo ${BASH_REMATCH[3]}
    printf "\e[0m" # Reset the color.
  • 而不是 \e您可以使用 \033\x1b .都是一样的。
  • 而不是 [0m您可以使用 [39;49;00m .
  • 而不是 printf您可以使用 echo -e ,但我不推荐。

  • 进一步阅读: http://wiki.bash-hackers.org/scripting/terminalcodes

    关于bash - bash脚本执行后终端的字体颜色发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29715625/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com