Need help with repeating variables in a shell script
I should preface this by saying I have never worked with shell scripts before so this is all new to me. I was able to make something that worked, but is terribly optimized, and I have no idea how to improve it. If anything it's a pretty hilarious script:
Code:
#/bin/bash
get_char() {
old_tty_settings=`stty -g`
stty -icanon min 0 time 1
stty cbreak
grabbed_char=`dd if=/dev/tty bs=1 count=1 2>/dev/null`
stty -cbreak
stty "$old_tty_settings"
}
while true; do
unset char00
unset char01
unset char02
unset char03
unset char04
unset char05
echo -e "\nWaiting for keystroke..."
read -n 1 char00
while true; do
get_char; char01=$grabbed_char
if [ "$char01" != "" ]; then get_char; char02=$grabbed_char
else break
fi
if [ "$char02" != "" ]; then get_char; char03=$grabbed_char
else break
fi
if [ "$char03" != "" ]; then get_char; char04=$grabbed_char
else break
fi
if [ "$char04" != "" ]; then get_char; char05=$grabbed_char
else break
fi
done
fullstring=$char00$char01$char02$char03$char04$char05
echo -e "\nFULLSTRING: !$fullstring!"
done
The list is a lot longer, but I spared you.
Basically, the program needs to sit in terminal forever waiting for a keystroke. After an initial keystroke, it needs to wait a very short amount of time (1/10th of a second in this case) for another keystroke. If no keystroke is registered in that short time, it echos the output (which will be piped with sed commands), and restarts.
It is meant to be used with a barcode scanner, where you may scan 4 characters, or 100 characters. We want to process the data as quickly as possible, meaning we don't want a 1 second delay after something is scanned.
A good solution would be if "charXX" could be created as a character was received. Thanks for any help.
HI guys
I need to store the output of a sql query in a variable, can you tell me how to do that
eg) select count(*) from s_escl_req
$count = count(*) from s_escl_req
how would i store the count(*) from the sql statement in a variable called $count.
thanks (3 Replies)
Hi all,
I had written 3 KSH scripts for different functionalities. In all these 3 files there are some 30 variables in common. So I want to reduce the code by placing these variables in a common properties file named (dataload.prop/dataload.parms/dataload.txt) or txt file and access it... (1 Reply)
I have a variable $exe in a shell script file a.sh which I need to access in another shell script file b.sh. How can I do that? :rolleyes:
Thanks!! (2 Replies)
Hi All,
I have a shell script called sample1.sh where I have 2 variables. Now I have another shell script called sample2.sh. I want the variables in sample1.sh to be available to sample2.sh.
For example. In sample1.sh I am finding the sum of 2 numbers namely a and b. Now I want to access... (2 Replies)
mysqldump --compact --add-drop-table -h192.168.150.80 -uroot -p somePass $combined | sed '/$combined/$table/g' | mysql $databaseThe sed part is not working from the above statement.
The variables combined and table are already defined and instead of showing the actual variable, it is executing the... (4 Replies)
Hi,
I am new to shell scripting. I need to extract data between repeating tags from an xml file and store the data in an array to process it further.
<ns1:root xmlns:ns1="http://example.com/config">
<ns1:interface>in1</ns1:interface>
<ns1:operation attribute1="true" attribute2="abd"... (2 Replies)
Hello,
I want to add a letter to the end of a string if it repeats in a column.
so if I have a file like this:
DOG001
DOG0023
DOG004
DOG001
DOG0023
DOG001
the output should look like this:
DOG001-a
DOG0023-a
DOG004
DOG001-b (15 Replies)
Dear Unix gurus,
We have a config shell script file which has 30 variables which needs to be passed to master unix shell script that invokes oracle database sessions. So those 30 variables need to go through the database sessions (They are inputs) via a shell script. one of the variable name... (1 Reply)
Dear Unix gurus,
We have a config shell script file which has 30 variables which needs to be passed to master unix shell script that invokes oracle database sessions. So those 30 variables need to go through the database sessions (They are inputs) via a shell script. one of the variable name... (1 Reply)
Hi All,
I have a script which intends to create as many variables at runtime, as the number of parameters passed to it. The script needs to save these parameter values in the variables created and print them
abc.sh
----------
export Numbr_Parms=$#
export a=1
while
do
export... (3 Replies)
Discussion started by: dev.devil.1983
3 Replies
LEARN ABOUT OSF1
tty
tty(1) General Commands Manual tty(1)NAME
tty - Returns pathname of terminal device
SYNOPSIS
tty [-s]
The tty command writes the full pathname of your terminal device to standard output. The tty command may also be used to determine if
standard input is a terminal.
STANDARDS
Interfaces documented on this reference page conform to industry standards as follows:
tty: XCU5.0
Refer to the standards(5) reference page for more information about industry standards and associated tags.
OPTIONS
Suppresses reporting the pathname.
The XCU specification states that -s option is obsolete and recommends the portable applications use test -t 0 instead of tty -s.
OPERANDS
None
DESCRIPTION
The command tty -s evaluates as TRUE if standard input is a display and FALSE if it is not.
[Tru64 UNIX] The file /dev/tty is a special file always refers to your controlling terminal, although it also may have another name like
/dev/console or /dev/tty2. To avoid writing undesirable output to an output file--for example, to write a prompt in a shell script to the
screen, while writing the response to the prompt to an output file--redirect standard output to /dev/tty.
NOTES
While the -s option is useful if only the exit code is wanted, it does not rely on any ability to form a valid pathname. For a portable
application you should use the command test -t 0.
EXIT STATUS
The following exit values are returned: Successful completion. Standard input is not a display. [Tru64 UNIX] Invalid options specified.
[Tru64 UNIX] An error occurred.
DIAGNOSTICS
[Tru64 UNIX] Your standard input is not a display and you did not specify the -s option.
EXAMPLES
To display full pathname of your terminal device, enter: tty To test whether or not the standard input is a terminal device, create a shell
script containing the following: if tty -s then echo 'Output is a display' else echo 'Output is not a display' fi
If the standard input is a terminal device, this displays the Output is a display message. If the standard input is not a terminal
device, it displays the Output is not a display message.
ENVIRONMENT VARIABLES
The following environment variables affect the execution of tty: Provides a default value for the internationalization variables that are
unset or null. If LANG is unset or null, the corresponding value from the default locale is used. If any of the internationalization vari-
ables contain an invalid setting, the utility behaves as if none of the variables had been defined. If set to a non-empty string value,
overrides the values of all the other internationalization variables. Determines the locale for the interpretation of sequences of bytes
of text data as characters (for example, single-byte as opposed to multibyte characters in arguments). Determines the locale for the for-
mat and contents of diagnostic messages written to standard error. Determines the location of message catalogues for the processing of
LC_MESSAGES.
FILES
Pseudodevice representing the user's controlling terminal.
SEE ALSO
Commands: stty(1), test(1)
Routines: ttyname(3)
Files: tty(7)
Standards: standards(5)tty(1)