【问题标题】:Bash text absolute positioningBash 文本绝对定位
【发布时间】:2013-12-05 04:18:53
【问题描述】:

如何实现输出的绝对定位?与 Linux 首次启动时非常相似,您会看到以下内容:

Starting process blah blah blah                              [   OK   ]

【问题讨论】:

  • 做人 printf 并阅读有关字符串格式的信息
  • 另一种方法是使用ANSI escape sequences显式定位光标。

标签: bash position absolute


【解决方案1】:

您可以在/etc/init.d/functions 中查看许多 Linux 发行版中用于生成 [ OK ] 的代码

$ grep echo_ /etc/init.d/functions
echo_success() {
echo_failure() {
echo_passed() {
echo_warning() {
$

经过检查,您会看到这些函数使用ANSI escape sequences

echo_success() {
  [ "$BOOTUP" = "color" ] && $MOVE_TO_COL
  ...
  return 0
}

MOVE_TO_COL="echo -en \\033[${RES_COL}G"

【讨论】:

    【解决方案2】:

    您可以使用“tput cup 10 10”将光标移动到所需位置。在这种情况下,第 10 列和第 10 行。 查看 tput 的手册页。

    【讨论】:

    • 所有这些的问题是它移动了整个提示。
    • 实际上这可能有效。如何只指定水平位置?
    • 可以通过:“tput cuf N”来完成。查看TLDP 的文档。该页面还包含很多示例,您还可以使用 tput 找出终端尺寸,因此使用该信息应该很容易。
    猜你喜欢
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 2010-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多