Read a multiline text from a console - supporting arrow keys


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Read a multiline text from a console - supporting arrow keys
# 1  
Read a multiline text from a console - supporting arrow keys

Hi,

I try to read a multiline text from a console and write it to a file using a bash script. I want to end reading from a console if a user types the [Enter] key twice. I tried this loop:
Code:
while read LINE; do
if [ ! $LINE ] 2>/dev/null; then
   break
fi
echo -e ${LINE} >> $file
done

However, it doesn't support the arrow keys

Do you have any idea?

Thanks in advance
# 2  
bash

Hi,

Try this one,

Code:
readmultiline.sh

#! /usr/bin/env bash
file=file1
while read LINE; do
if [ -z "$LINE" ]; then
   break
fi
echo -e "${LINE}" >>$file
done

$ bash readmultiline.sh
Unix is god^[[B^[[A^[[C^[[D
Linux^[[A^[[D^[[B^[[C^[[A

$ cat -A file1
Unix is god^[[B^[[A^[[C^[[D$
Linux^[[A^[[D^[[B^[[C^[[A$

Cheers,
Ranga Smilie
This User Gave Thanks to rangarasan For This Post:
# 3  
Quote:
Originally Posted by wenclu
...
However, it doesn't support the arrow keys
What do you mean? Do you want to skip through earlier input lines with the arrow keys?
This User Gave Thanks to RudiC For This Post:
# 4  
Quote:
Originally Posted by wenclu
I want to end reading from a console if a user types the [Enter] key twice.
try this..

Code:
while [[ $a < 2 ]]
do
read line
if [[ "$line" != "" ]]
then
let a=0
echo $line >> file_temp
else
let a++;
fi
done

It will stop if user press two consecutive enters..(Means two consecutive Blank inputs..)Smilie

Last edited by pamu; 10-15-2012 at 07:47 AM..
This User Gave Thanks to pamu For This Post:
# 5  
Hi,

Thank you for your replies. However, I didn't express myself clearly, I just want to be able to move a cursor using the arrow keys while reading an input from a console, because now after pressing an arrow key I got e.g. ^[[D^[[C^[[A^[[B output instead of moving my cursor
# 6  
Again, what's your purpose? Do you want to skip back in your input lines or do you just want to move left and right? The latter can be achieved - in bash, may be unavailable in other shells - by switching on the readline library functions using the -e option: read -e lineThe former is much harder to do, like using numbered variables or an array, and writing to the output file consistently will become a nightmare; you might be better off using an editor.
This User Gave Thanks to RudiC For This Post:
# 7  
I just want to move left/right and if it's possible also up and down, but honestly I don't have any idea how to achieve the latter. Anyway, thank you for your solution with the -e option
Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #198
Difficulty: Easy
Bash ranked in the top 20 programming languages according to the TIOBE Index for October 2019.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Arrow keys binding in AIX v5.3 - how?

Would somebody advise how arrow keys could be binded in AIX v5.3? I could not find reasonable information online related to AIX. I've meat advises to define: alias __A=$'\020' # or the same: alias __A=$(echo "\020") alias __B=$'\016' alias __C=$'\006' alias __D=$'\002' But it does... (2 Replies)
Discussion started by: alex_5161
2 Replies

2. UNIX for Dummies Questions & Answers

Tux-HJKL as arrow keys

I would like to configure the key combination Tux-J (Win-J) as Down Arrow, and the rest of the VIM-style movement keys as well (HKL). What is the best way to do this so that it will work in all applications? I thought about editing the keyboard layout but I'm not sure how to do that for Tux-key... (2 Replies)
Discussion started by: dotancohen
2 Replies

3. Shell Programming and Scripting

problem using arrow keys in bash shell

hello everybody, as many, I have a problem with a script... I wrote a shell script in which I want to read a variable value. the problem is that I can't use the arrow keys. Here is the script I use : #!/bin/bash stty erase ^H read foune echo "$foune" exit 0; the problem is... (2 Replies)
Discussion started by: Moumou
2 Replies

4. Shell Programming and Scripting

Using arrow keys in shell scripts

I recently needed to collect arrow keys (and function keys etc.) in a shell script so that I could run a text graphics-style data entry system (with text entry fields, drop-down list boxes, progress bars and the like). Yes you can do all this in shell, and portably too if you're careful. I've... (4 Replies)
Discussion started by: cambridge
4 Replies

5. UNIX for Dummies Questions & Answers

SunOS 5.10 - VI Arrow keys not working

Hi I am working on SunOS 5.10 from remote terminal using putty. Also echo $TERM xterm In vi editor when in insert mode arrow keys are not working for cursor movement instead they print A B C and D. Please help. thanks ravs (7 Replies)
Discussion started by: ravashingravi
7 Replies

6. UNIX and Linux Applications

command scrolling using arrow keys

hi, can anyone tell me how to enable arrow keys to scroll thru the commands on command prompt. I am using C shell ( I know, in k shell, set -o vi would enable vi command history, but set -o doesnte exist in c shell) (4 Replies)
Discussion started by: hemangi13
4 Replies

7. Solaris

Using arrow keys

Hello, I am unable to use the arrow keys in some applications. For example, in bash, I am able to use the arrow keys to to go back and forth characters in current line and search the history--I can do everything you'd expect to be able to do with the arrow keys. However, in bc, I cannot use... (4 Replies)
Discussion started by: cooldude
4 Replies

8. Shell Programming and Scripting

How to read arrow keys on really old bash?

I would like to get a script to respond to arrow key presses to scroll up and down a menu. The platform is CDLinux which uses a prehistoric version of bash, version 1.14.7. I would like to do something like "read -sn 1 keyin" but the "read" command is so primative that it only has the -r... (1 Reply)
Discussion started by: simonb
1 Replies

9. UNIX for Dummies Questions & Answers

arrow keys / special keys

how to use the arrow keys in shell scripting. is there any special synatax / command for this. i just want to use the arrow keys for navigation. replies appreciated raguram R (3 Replies)
Discussion started by: raguramtgr
3 Replies

10. Shell Programming and Scripting

Trapping Arrow keys

Hey Guys , How do we trap the arrow keys in shell programming. Or atleast can we read the ascii code of the arrow keys. I want to read the arrow keys pressed by the user and accordingly highlight the corresponding menu option. Is it possible in shell to do so ?? ... (1 Reply)
Discussion started by: nageshrc
1 Replies

Featured Tech Videos