Sponsored Content
Full Discussion: Read input from another tty
Top Forums Shell Programming and Scripting Read input from another tty Post 302686459 by bakunin on Tuesday 14th of August 2012 03:28:19 PM
Old 08-14-2012
You haven't said which OS, etc., you are on, so you might have to adapt the following a bit:

In principle every device in Unix/Linux has a "device file", which resides in /dev. In the case of a terminal this is most probably /dev/ttyX, where "X" is some number and the device file is a character device. For instance, from my Ubuntu system:

Code:
# ls -l /dev/tty*
crw-rw-rw- 1 root tty     5,  0 Aug 14 08:35 /dev/tty
crw--w---- 1 root root    4,  0 Aug 14 08:35 /dev/tty0
crw------- 1 root root    4,  1 Aug 14 08:36 /dev/tty1
crw--w---- 1 root tty     4, 10 Aug 14 08:35 /dev/tty10
crw--w---- 1 root tty     4, 11 Aug 14 08:35 /dev/tty11
[...etc. ...]

Reading from such a device will give you whatever a user sitting at this terminal types, writing to such a device will produce the output at that screen. So, after making sure you are allowed to write to and read from the terminals device file you could probably direct your <stderr> output to it by

Code:
/some/process 2>/dev/ttyX

I hope this helps.

bakunin
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

How to input escape sequences in Linux tty?

More details: Unicode, Framebuffer. I tried to press Esc and then what should follow, letters or brackets, but seems not to work. Probably i do something wrong. If somebody is familiar with escape sequences in the console, how do you do that? Thanks in advance. (4 Replies)
Discussion started by: Action
4 Replies

2. UNIX for Dummies Questions & Answers

read from terminal/keyboard > /dev/tty

Hi, I need to provide more than one character to "> /dev/tty" through terminal/keyboard input, I have this: ok=false while do echo " Enter r1 to reformat " > /dev/tty read choice case $choice in ) echo " bla bla bla " ;; done However, in this way,... (3 Replies)
Discussion started by: Gery
3 Replies

3. Shell Programming and Scripting

Read input

I have a script. #! /bin/bash echo "Enter a word: " read word echo $word That outputs like this.. Enter a word: hello hello But how can i read on the same line the question is printed? Like this.. Enter a word: hello hello (2 Replies)
Discussion started by: cbreiny
2 Replies

4. Shell Programming and Scripting

Help with Bash piped while-read and a read user input at the same time

Hi I am new to writing script and want to use a Bash Piped while-read and read from user input. if something happens on server.log then do while loop or if something happend on user input then do while loop. Pseudocode something like: tail -n 3 -f server.log | while read serverline || read... (8 Replies)
Discussion started by: MyMorris
8 Replies

5. Shell Programming and Scripting

Read Input and go BG

My script needs to get some input from the user and go as a background process and run. I have something like read input. do while ... if .. fi done can i use nohup inside the script?? (7 Replies)
Discussion started by: Antergen
7 Replies

6. Ubuntu

Kernel panics : trying to write / read on tiny tty driver

I'm a beginner to the Linux programming and trying my hands on some device driver examples while practising. The below code (a trimmed down version of tiny_tty.c from ldd3 book) loads perfectly using insmod and I'm able to see it in /proc/tty/drivers , /proc/modules and device nodes are getting... (1 Reply)
Discussion started by: diwsdiwa
1 Replies

7. Shell Programming and Scripting

Read input files and merge them in given order and write them to input one param or one file

Dear Friends, I am looking for a shell script to merge input files into one file .. here is my idea: 1st paramter would be outfile file (all input files content) read all input files and merge them to input param 1 ex: if I pass 6 file names to the script then 1st file name as output file... (4 Replies)
Discussion started by: hyd1234
4 Replies

8. Shell Programming and Scripting

Using read for input over ssh

Hi, I'm using read in a script to prompt and receive input. read -r -p "Do you also want to deploy folder? " response This works fine, however, if I remotely execute the same script via ssh, at this point in the code, I don't see the message at all, but it waits for input. I could echo... (1 Reply)
Discussion started by: say170
1 Replies

9. Shell Programming and Scripting

Read input from Keyboard, do not proceed if no input

Hi, I am working on a script, which requests users to enter input. Ex: read -p "Please enter your email id:" email I don't want users skipping this entry, this has to be mandatory.I dont want to proceed without input. I can do a check if variable $email is empty and proceed if not.But, i... (7 Replies)
Discussion started by: aravindadla
7 Replies

10. Shell Programming and Scripting

Python: Redirecting to tty and reading from tty

In bash, you can do something like this: #!/bin/bash echo -n "What is your name? " > /dev/tty read thename < /dev/tty How can I do the same in python? I have a python script that has the following content: #!/usr/bin/python2.7 import getpass import sys import telnetlib import... (2 Replies)
Discussion started by: SkySmart
2 Replies
ports(1M)                                                 System Administration Commands                                                 ports(1M)

NAME
ports - creates /dev entries and inittab entries for serial lines SYNOPSIS
/usr/sbin/ports [-r rootdir] DESCRIPTION
devfsadm(1M) is now the preferred command for /dev and /devices and should be used instead of ports. The ports command creates symbolic links in the /dev/term and /dev/cua directories to the serial-port character device files in /devices and adds new entries in /etc/inittab for non-system ports found. System-board ports are given single lower-case letters for names (such as a and b) while other ports are named numerically. ports searches the kernel device tree to find the serial devices attached to the system. It also checks /dev/term and /dev/cua to see what symbolic links to serial devices already exist. ports then performs the following: 1. Assigns new numbers (or letters for system-board ports) to ports that are attached to the system but do not have /dev/term and /dev/cua entries. The numbers or letters assigned are the lowest-unused numbers or letters. 2. Removes dangling links: links from /dev/term and /dev/cua pointing to no-longer-existing ports. 3. Creates new /dev/term and /dev/cua links for new serial devices. 4. Invokes sacadm(1M) to make new port monitor entries for the new devices. This is not done automatically for on-board ports; on worksta- tions these ports are often not used for dial-in sessions, so a port-monitor for one of these ports must be created explicitly. If the configuration has not changed, ports exits without doing anything. Notice to Driver Writers ports considers devices with a node type of DDI_NT_SERIAL, DDI_NT_SERIAL_MB, DDI_NT_SERIAL_DO, or DDI_NT_SERIAL_MB_DO to be serial port devices. Devices with one of these node types must create minor device names that obey the following conventions when calling ddi_cre- ate_minor_node(9F). o The minor name for non-system port devices (DDI_NT_SERIAL) consists of an ASCII numeric string, where the first port on the device is named 0, the second named 1, the third named 2, up to the number of ports provided by the device. o The minor name for non-system dialout devices (DDI_NT_SERIAL_DO) is the ASCII numeric port name, concatenated with ,cu. For example, the minor name for the first dialout port on the serial board is 0,cu. o The minor name for system-board port devices (DDI_NT_SERIAL_MB) consists of a string containing a single ASCII lowercase character, where the first port on the device is named a, the second is named b, the third is named c, for all ports on the device (or up through port z). o The minor name for system-board dialout devices (DDI_NT_SERIAL_MB_DO) consists of the lowercase character port name, concatenated with ,cu. For example, the minor name for the first dialout port on the on-board serial device is a,cu. To prevent disks from attempting to automatically generate links for a device, drivers must specify a private node type and refrain from using one of the above node types when calling ddi_create_minor_node(9F). OPTIONS
The following options are supported: -r rootdir Causes ports to presume that the /dev/term, /dev/cua, and /devices directories are found under rootdir, not directly under /. If this argument is specified, sacadm(1M) is not invoked, since it would update terminal administration files under /etc without regard to the rootdir. EXAMPLES
Example 1: Creating the Serial and Dialout Minor Device Nodes The following example creates the serial and dialout minor device nodes from the xkserial driver's attach(9E) function: /* * Create the minor number by combining the instance number * with the port number. */ #define XKNUMPORTS 8 #define XKMINORNUM(i, p) ((i) << 4 | (p)) #define XKMINORNUM_DO(i, p) ((i) << 4 | (p) | 0x80) int xkserialattach(dev_info_t *dip, ddi_attach_cmd_t cmd) { int instance, portnum; char name[8]; /* other stuff in attach... */ instance = ddi_get_instance(dip); for (portnum = 0; portnum < XKNUMPORTS; portnum++) { /* * create the serial port device */ sprintf(name, "%d", portnum); ddi_create_minor_node(dip, name, S_IFCHR, XKMINORNUM(instance, portnum), DDI_NT_SERIAL, 0); /* * create the dialout device */ sprintf(name,"%d,cu", portnum); ddi_create_minor_node(dip, name, S_IFCHR, XKMINORNUM_DO(instance, portnum), DDI_NT_SERIAL_DO, 0); } } Example 2: Installing the xkserial Port Driver on a Sun Fire 4800 The following example installs the xkserial port driver on a Sun Fire 4800 (with the driver controlling the fictional XKSerial 8 port serial board), with these special files in /devices: # ls -l /devices/ssm@0,0/pci@18,700000/pci@1/xkserial@f,800000/ crw-r----- 1 root sys 32, 16 Aug 29 00:02 xkserial@2000:0 crw-r----- 1 root sys 32, 144 Aug 29 00:02 xkserial@2000:0,cu crw-r----- 1 root sys 32, 17 Aug 29 00:02 xkserial@2000:1 crw-r----- 1 root sys 32, 145 Aug 29 00:02 xkserial@2000:1,cu crw-r----- 1 root sys 32, 18 Aug 29 00:02 xkserial@2000:2 crw-r----- 1 root sys 32, 146 Aug 29 00:02 xkserial@2000:2,cu crw-r----- 1 root sys 32, 19 Aug 29 00:02 xkserial@2000:3 crw-r----- 1 root sys 32, 147 Aug 29 00:02 xkserial@2000:3,cu crw-r----- 1 root sys 32, 20 Aug 29 00:02 xkserial@2000:4 crw-r----- 1 root sys 32, 148 Aug 29 00:02 xkserial@2000:4,cu crw-r----- 1 root sys 32, 21 Aug 29 00:02 xkserial@2000:5 crw-r----- 1 root sys 32, 149 Aug 29 00:02 xkserial@2000:5,cu crw-r----- 1 root sys 32, 22 Aug 29 00:02 xkserial@2000:6 crw-r----- 1 root sys 32, 150 Aug 29 00:02 xkserial@2000:6,cu crw-r----- 1 root sys 32, 23 Aug 29 00:02 xkserial@2000:7 crw-r----- 1 root sys 32, 151 Aug 29 00:02 xkserial@2000:7,cu /dev/term contain symbolic links to the serial port device nodes in /devices # ls -l /dev/term /dev/term/0 -> ../../devices/[....]/xkserial@2000:0 /dev/term/1 -> ../../devices/[....]/xkserial@2000:1 /dev/term/2 -> ../../devices/[....]/xkserial@2000:2 /dev/term/3 -> ../../devices/[....]/xkserial@2000:3 /dev/term/4 -> ../../devices/[....]/xkserial@2000:4 /dev/term/5 -> ../../devices/[....]/xkserial@2000:5 /dev/term/6 -> ../../devices/[....]/xkserial@2000:6 /dev/term/7 -> ../../devices/[....]/xkserial@2000:7 and /dev/cua contain symbolic links to the dialout port device nodes in /devices # ls -l /dev/cua /dev/cua/0 -> ../../devices/[....]/xkserial@2000:0,cu /dev/cua/1 -> ../../devices/[....]/xkserial@2000:1,cu /dev/cua/2 -> ../../devices/[....]/xkserial@2000:2,cu /dev/cua/3 -> ../../devices/[....]/xkserial@2000:3,cu /dev/cua/4 -> ../../devices/[....]/xkserial@2000:4,cu /dev/cua/5 -> ../../devices/[....]/xkserial@2000:5,cu /dev/cua/6 -> ../../devices/[....]/xkserial@2000:6,cu /dev/cua/7 -> ../../devices/[....]/xkserial@2000:7,cu FILES
/dev/term/n Logical serial port devices /dev/cua/n Logical dialout port devices /etc/inittab /etc/saf/* ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability | SUNWcsu | +-----------------------------+-----------------------------+ SEE ALSO
add_drv(1M), devfsadm(1M), drvconfig(1M), pmadm(1M), sacadm(1M), attributes(5), devfs(7FS), attach(9E), ddi_create_minor_node(9F) Writing Device Drivers SunOS 5.10 8 Nov 2002 ports(1M)
All times are GMT -4. The time now is 02:01 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy