Sponsored Content
Top Forums Shell Programming and Scripting Control cursor position also at bottom of window Post 303043681 by Ralph on Monday 3rd of February 2020 06:28:32 PM
Old 02-03-2020
Quote:
Originally Posted by RudiC
Would a (man console_codes)
Code:
ESC M     RI       Reverse linefeed.

help?
Cool manual page but no... the page still scrolled up and I ended up in the next line, rather than restarting in the same line.

I think I have to check whether the cursor is in the last line of the window or not and do the reverse line feed only in that case. Together with an answer that I found elsewhere on this forum I came up with this version of the function which apparently works now:

Code:
function askYesOrNo {
        printf "\e[1;31;47m$1 [Y|n]\e[0m "      # print $1 in color
        printf "\e[s"                           # save cursor x-pos
    
        while true ; do
                read answer
                if [ -z "$answer" ] ; then
                        return 0
                elif [ "$(tr -d "NnYy" <<< $answer)" != "$answer" ] ; then
                        break
                fi

                # How many lines in this window?
                LINES=$(tput lines)

                # find cursor y-position ( line number )
                printf "\e[6n" ; read -sd R POS 
                CURPOS=${POS#*[}; CUR_Y=${CURPOS%;*}
 
                if [ "$CUR_Y" -eq "$LINES" ] ; then
#                       printf "\e[u\e[1A\e[K" 
                        printf "\e[u\eM\e[K"
                else
                        printf "\e[u\e[K" 
                fi                          
        done
        if [ "${answer^}" == "Y" ]; then 
                return 0
        fi  
        return 1
}

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Get the cursor position

Hello, Is there a way to get the current cursor position? I know "tput sc" saves it. Is there a way to find out the value saved? Thanks. (0 Replies)
Discussion started by: bestbuyernc
0 Replies

2. Programming

Cursor Global Position

Hello all, How can i get the global position of the cursor? (i'm using c language, and suse 10.1 linux) Thanks. (3 Replies)
Discussion started by: boogy
3 Replies

3. HP-UX

Command to know the terminal cursor position

Dear all, How can i get the current cursor position..is thr any command to find the same? Thanks in Advance Aneesh (3 Replies)
Discussion started by: aneesha
3 Replies

4. Programming

get terminal width and cursor position

I want to get the screen width and cursor positions. When I used curses, all the screen content was cleared. So Can I use curses to get the screen size without clearing anything in the window? Or is there any other alternative??? I can use only C or C++. (0 Replies)
Discussion started by: Sreejesh.S
0 Replies

5. Shell Programming and Scripting

Changing cursor position using shell script

Hi, Pleae help me on this. Normally, when we say read username, the cursor will come in the first position of next line, but I want the output of the below Normal usage ------------- please enter username: _ I want like the below ---------------------- please enter username: ... (2 Replies)
Discussion started by: balamv
2 Replies

6. UNIX and Linux Applications

read position mouse cursor

Hi to all! I'm a teacher of maths and physics in an italian high school in Milan, Italy. I need a simple program that read the position of mouse cursor in function of time and write the coordinates in a text file. The time resolution have to be something like 1/10 sec or better (I have to know... (2 Replies)
Discussion started by: chris75
2 Replies

7. UNIX for Dummies Questions & Answers

Cursor position

Is there a way of finding the current cursor position (line & column) within AIX (4 Replies)
Discussion started by: gefa
4 Replies

8. Shell Programming and Scripting

ksh - moving cursor position

hi all, am trying to modify a ksh script to group server names together depending on the cluster they sit in. currently the script does a find . -name '*.pid' to find all running servers and prints out their pids and names. current output looks something like this : serverA ... (1 Reply)
Discussion started by: cesarNZ
1 Replies

9. Shell Programming and Scripting

Getting the cursor position

I need to get the cursor position, and put it inside a variable. Problem is, i don't have the tput command, or ncurses. Apparently I was supposed to try the following: echo -e '\E But I don't get a value or anything. Please help. (3 Replies)
Discussion started by: tinman47
3 Replies

10. Shell Programming and Scripting

Holding cursor position on one line

Hi there. It's easier to explain this with a pseudo code, I hope this makes sense: var1=hello echo $var1 some kind of loop echo loop counter done How do I hold the cursor position immediately behind the last output so I'd get something like: hello123456789 DOS used to use ","... (5 Replies)
Discussion started by: MuntyScrunt
5 Replies
COL(1)							      General Commands Manual							    COL(1)

NAME
col - filter reverse line feeds SYNOPSIS
col [-bfx] DESCRIPTION
Col reads the standard input and writes the standard output. It performs the line overlays implied by reverse line feeds (ESC-7 in ASCII) and by forward and reverse half line feeds (ESC-9 and ESC-8). Col is particularly useful for filtering multicolumn output made with the `.rt' command of nroff and output resulting from use of the tbl(1) preprocessor. Although col accepts half line motions in its input, it normally does not emit them on output. Instead, text that would appear between lines is moved to the next lower full line boundary. This treatment can be suppressed by the -f (fine) option; in this case the output from col may contain forward half line feeds (ESC-9), but will still never contain either kind of reverse line motion. If the -b option is given, col assumes that the output device in use is not capable of backspacing. In this case, if several characters are to appear in the same place, only the last one read will be taken. The control characters SO (ASCII code 017), and SI (016) are assumed to start and end text in an alternate character set. The character set (primary or alternate) associated with each printing character read is remembered; on output, SO and SI characters are generated where necessary to maintain the correct treatment of each character. Col normally converts white space to tabs to shorten printing time. If the -x option is given, this conversion is suppressed. All control characters are removed from the input except space, backspace, tab, return, newline, ESC (033) followed by one of 789, SI, SO, and VT (013). This last character is an alternate form of full reverse line feed, for compatibility with some other hardware conventions. All other non-printing characters are ignored. SEE ALSO
troff(1), tbl(1), greek(1) BUGS
Can't back up more than 128 lines. No more than 800 characters, including backspaces, on a line. COL(1)
All times are GMT -4. The time now is 10:02 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy