linux printf到指定的终端行

linux printf到指定的终端行,linux,terminal,Linux,Terminal,在yocto中,当我使用bibake创建一个配方时,与此配方相关的阶段将以多行打印,非常漂亮。 所以我想实现一个像这样的小例子 获取当前光标的行 运行两个线程,一个在行+1处输出内容,另一个输出 第2行的某物 结果,我失败了。然后我运行了两个做同样事情的进程,再次失败 有人能给我一些建议吗? 我想要的是: ts:/home/test$ ./program1 &; ./program1 & program1's output..................... progra

在yocto中,当我使用bibake创建一个配方时,与此配方相关的阶段将以多行打印,非常漂亮。 所以我想实现一个像这样的小例子

  • 获取当前光标的
  • 运行两个线程,一个在行+1处输出内容,另一个输出 第2行的某物
  • 结果,我失败了。然后我运行了两个做同样事情的进程,再次失败

    有人能给我一些建议吗? 我想要的是:

    ts:/home/test$ ./program1 &; ./program1 &
    
    program1's output.....................
    program2's output.....................
    
    
    在Bash中:

    #!/usr/bin/env bash
    
    printf '\n\n'
    
    echo -ne "\033[6n"
    read -rs -d\[ _
    read -rs -dR foo
    cursor_pos=$(cut -d";" -f1 <<< "$foo")
    upper_row=$((cursor_pos - 2))
    lower_row=$((cursor_pos - 1))
    
    echo -ne  "\033[${upper_row};0H"
    echo upper row
    sleep 2
    echo -ne  "\033[${lower_row};0H"
    echo lower low
    sleep 2
    echo -ne  "\033[${upper_row};0H"
    printf "\r\e[0K%s\n"  "upper again"
    sleep 2
    echo -ne  "\033[${lower_row};0H"
    printf "\r\e[0K%s\n"  "lower again"
    
    #/usr/bin/env bash
    printf'\n\n'
    echo-ne“\033[6n”
    read-rs-d\[_
    read-rs-foo博士
    光标位置=$(在Bash中剪切-d”;“-f1:

    #!/usr/bin/env bash
    
    printf '\n\n'
    
    echo -ne "\033[6n"
    read -rs -d\[ _
    read -rs -dR foo
    cursor_pos=$(cut -d";" -f1 <<< "$foo")
    upper_row=$((cursor_pos - 2))
    lower_row=$((cursor_pos - 1))
    
    echo -ne  "\033[${upper_row};0H"
    echo upper row
    sleep 2
    echo -ne  "\033[${lower_row};0H"
    echo lower low
    sleep 2
    echo -ne  "\033[${upper_row};0H"
    printf "\r\e[0K%s\n"  "upper again"
    sleep 2
    echo -ne  "\033[${lower_row};0H"
    printf "\r\e[0K%s\n"  "lower again"
    
    !/usr/bin/env bash
    printf'\n\n'
    echo-ne“\033[6n”
    read-rs-d\[_
    read-rs-foo博士
    
    cursor_pos=$(cut-d”;“-f1您的解决方案会一个接一个地输出,而不是并发的:(在我尝试之后)您的解决方案会一个接一个地输出,而不是并发的:(在我尝试之后)