首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MinTTY (Git )上,tput非常慢

在MinTTY (Git )上,tput非常慢
EN

Stack Overflow用户
提问于 2021-08-21 20:28:44
回答 1查看 109关注 0票数 0

总体来说,Git相当缓慢( WSL/Ubuntu下的平均运行时间为1.082 s,MinTTY中为4.460)。我将大量1.479的代码压缩到以下代码块:

代码语言:javascript
复制
# Determine if this terminal supports colors
if test -t 1; then
    if [[ -n "$(tput colors)" ]] && [[ "$(tput colors)" -ge 8 ]]; then
        MY_APP_FMT_SUPPORTED=true

        MY_APP_FMT_BOLD="$(tput bold)"
        MY_APP_FMT_UNDERLINE="$(tput smul)"
        MY_APP_FMT_INVERSE="$(tput smso)"
        MY_APP_FMT_BLACK="$(tput setaf 0)"
        MY_APP_FMT_RED="$(tput setaf 1)"
        MY_APP_FMT_GREEN="$(tput setaf 2)"
        MY_APP_FMT_YELLOW="$(tput setaf 3)"
        MY_APP_FMT_BLUE="$(tput setaf 4)"
        MY_APP_FMT_MAGENTA="$(tput setaf 5)"
        MY_APP_FMT_CYAN="$(tput setaf 6)"
        MY_APP_FMT_WHITE="$(tput setaf 7)"

        MY_APP_FMT_CODE=$MY_APP_FMT_CYAN

        # placing it down below so that option -x doesn't cause bad highlighting
        # to persist
        MY_APP_FMT_CLEAR="$(tput sgr0)"
    fi
fi

考虑到我对Windows上*nix工具的性能的理解,我怀疑放缓是来自所有的子subshells。

  • 应该解释整个经济放缓的原因吗?如果不是,我需要继续研究为什么Git Bash仍然缓慢。
  • 在维护终端
  • 时有一种更好的方式来实现这一点。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-21 21:45:26

可以使用-S选项对tput调用进行分组:

代码语言:javascript
复制
#!/usr/bin/env bash

tkeys=(bold smul "setaf 0" "setaf 1") # You can add the rest

tvalues_s=$(tput -S < <(printf "%s\n" "${tkeys[@]}"))

declare -a tvalues=( ${tvalues_s//$'\e'/ $'\e'} )

declare -p tvalues

既然在tvalues中有了值,就可以分配给MY_APP_FMT_了.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68876525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档