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
Mined  is a simple screen editor.  At any instant, a window of 24
lines is visible on the screen.  The current position in the file
is shown by the cursor.  Ordinary characters typed in are insert-
ed at the cursor.  Control characters and  keys  on  the  numeric
keypad	(at the right-hand side of the keyboard) are used to move
the cursor and perform other functions.  Commands exist  to  move
forward  and backward a word, and delete words either in front of
the cursor or behind it.  A word in this context is a sequence of
characters  delimited  on  both  ends by white space (space, tab,
line feed, start of file, or end  of  file).   The  commands  for
deleting  characters and words also work on line feeds, making it
possible to join two consecutive lines by deleting the line  feed
between  them.	 The  editor  maintains one save buffer (not dis-
played).  Commands are present to move text from the file to  the
buffer, from the buffer to the file, and to write the buffer onto
a new file.  If the edited text cannot be written out  due  to	a
full disk, it may still be possible to copy the whole text to the
save buffer and then write it to a different file on a	different
disk with CTRL-Q.  It may also be possible to escape from the ed-
itor with CTRL-S and remove some files.   Some	of  the  commands
prompt	for  arguments	(file names, search patterns, etc.).  All
commands that might result in  loss  of  the  file  being  edited
prompt to ask for confirmation.  A key (command or ordinary char-
acter) can be repeated times by typing where is the  escape  key.
Forward  and  backward searching requires a regular expression as
the search pattern.  Regular expressions follow the same rules as
in  the  editor,  These  rules	can be stated as: Any displayable
character matches itself.  . (period) matches any  character  ex-
cept line feed.  ^ (circumflex) matches the start of the line.	$
(dollar sign) matches the end of the line.  c matches the  char-
acter  c  (including  period, circumflex, etc).  [string] matches
any of the characters in the string.  [^string]  matches  any  of
the  characters  except  those	in the string.	[x-y] matches any
characters between x and y (e.g., [a-z]).  Pattern*  matches  any
number	of  occurrences of pattern.  Some examples of regular ex-
pressions are:
  The boy   matches the string The boy
  ^$	    matches any empty line.
  ^.$	    matches any line containing exactly 1 character
  ^A.*.$   matches any line starting with an A,  ending  with	a
	    period.
  ^[A-Z]*$  matches  any line containing only capital letters (or
	    empty).
  [A-Z0-9]  matches any line containing either a  capital  letter
	    or a digit.
  .*X$	    matches any line ending in X
  A.*B	    matches any line containing an A and then a B

Control characters cannot be entered into a file simply by typing
them because all of them are editor commands.  To enter a control
character,  depress  the ALT key, and then while holding it down,
hit the ESC key.  Release both ALT and ESC and type  the  control
character.   Control  characters  are displayed in reverse video.
The commands are as follows.

CURSOR MOTION
arrows Move the cursor in the indicated direction CTRL-A Move cursor to start of current line CTRL-Z Move cursor to end of current line CTRL-^ Move cursor to top of screen CTRL-_ Move cursor to end of screen CTRL-F Move cursor forward to start of next word CTRL-B Move cursor backward to start of previous word SCREEN MOTION
Home key Move to first character of the file End key Move to last character of the file PgUp key Scroll window up 23 lines (closer to start of the file) PgDn key Scroll window down 23 lines (closer to end of the file) CTRL-U Scroll window up 1 line CTRL-D Scroll window down 1 line MODIFYING TEXT
Del key Delete the character under the cursor Backspace Delete the character to left of the cursor CTRL-N Delete the next word CTRL-P Delete the previous word CTRL-T Delete tail of line (all characters from cursor to end of line) CTRL-O Open up the line (insert line feed and back up) CTRL-G Get and insert a file at the cursor position BUFFER OPERATIONS
CTRL-@ Set mark at current position for use with CTRL-C and CTRL-K CTRL-C Copy the text between the mark and the cursor into the buffer CTRL-K Delete text between mark and cursor; also copy it to the buffer CTRL-Y Yank contents of the buffer out and insert it at the cursor CTRL-Q Write the contents of the buffer onto a file MISCELLANEOUS
numeric + Search forward (prompts for regular expression) numeric - Search backward (prompts for regular expression) numeric 5 Display the file status CTRL-] Go to specific line CTRL-R Global replace pattern with string (from cursor to end) CTRL-L Line replace pattern with string CTRL-W Write the edited file back to the disk CTRL-X Exit the editor CTRL-S Fork off a shell (use CTRL-D to get back to the edi- tor) CTRL- Abort whatever the editor was doing and wait for com- mand CTRL-E Erase screen and redraw it CTRL-V Visit (edit) a new file Mined was designed by Andy Tanenbaum and written by Michiel Huis- jes.
All times are GMT -4. The time now is 12:43 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy