i=1
while [ i -le 100 ] ; do
(( i += 1 ))
done
print $i
produces 101 in ksh and errors in Bourne shell.
While the following
Code:
i=1
while [ $i -le 100 ] ; do
i=`expr $i + 1`
done
echo $i
runs on both,
but might produce 1 in an old Bourne shell because it always runs the while loop in a sub shell.
A later Bourne shell has got a fix, but seeing a redirection it still runs the sub shell.
Code:
i=1
while [ $i -le 100 ] ; do
i=`expr $i + 1`
done </dev/null
echo $i
That means all Bourne shells do not work with the previously suggested <<EOF redirection.
The Posix shell has got it all fixed. And all Posix-compatible shells.
But a pipe really forces a sub shell. Because it is the last part of the pipe. Compare with a simple command
Code:
echo "a:b:c:" | IFS=":" read a b c
Only the ksh has got the (incompatible) modification to run the last part of the pipe in the current shell.
Back to the initial post - that works only in ksh.
The following is portable to all Posix-compatible shells:
Code:
totalstr=$(
# sub shell starts
sep=""
echo "$loc" |
while IFS= read -r line ; do
# the pipe might force a sub sub shell
printf "%s" "$sep$line"
sep=","
done
# sub shell ends
)
echo "Final Output:$totalstr "
As you can see, a sub shell inherits everything from the current shell, but not vice versa.
I have problem like this :
while loop
1 var=some expression
2 if then
3 Do something
4 oldVar=$var
5 fi
6 done
Then, I am facing error at line number 2, mentioning invalid argument. Can anyone please help me for, How to retain value in oldVar? (4 Replies)
Bourne shell
Solaris
I'm trying to set a flag to perform an action only when data is found. So I initialize the flag with:
X=0
Then I read the data:
if ; then
while read a b c
do
X=1
done < ${inputFile}
fi
The problem is that X will be set to 1 inside the while loop but when... (5 Replies)
gunzip fnam.tar.gz
After this command execution... .gz file no longer exists... and only fnam.tar is present.
Is it possible to retain the tar.gz file after after using the above command
thx in advance. (4 Replies)
Hi all,
I wrote a shell script in which one of the if condition i tried to set few variables and exported them...and when i am out of if condition i wish to run one of my script which uses those variables exported.
But i found that when i am out of the if statement those variables... (5 Replies)
Hi Experts,
I have a 2 GB flat file which have unicode field, some of them are blanks and its size is 4000 character. In the existing system SED command removes the spaces. Because of this field itself....it is taking almost three days to complete the file processing. I removed sed and... (0 Replies)
hi all,
Is there any way to retain file path?
echo "Please enter your old filename"
read a
#user input : /blah/blah1
echo "please enter the new filename"
read b
#user input : dumb
mv $a $b
What i would like to do is for the user to enter just the "filename" for the new filename... (2 Replies)
Hello.
I'm trying to add multiple numbers with varying length and with leading zeroes in it. However, I'm getting the sum (totalHashAccountNumber) without the leading zeroes in it. How do I retain the leading zeroes?
Please pardon the lengthy code.. I'm getting the hash account number from 2... (2 Replies)
use strict;
use warnings;
open (my $fhConditions, "<input1.txt"); #open input file1
open (my $fhConditions1, "<input2.txt");#open input file2
open (my $w1, ">output1");
open (my $w2, ">output2");
our $l = 10;#set a length to be searched for match
our $site="AAGCTT";#pattern to be matched... (1 Reply)
There's an input file(input.txt) which has the following details :
CBA
BA
<Please note the second record has a LEADING WHITESPACE which is VALID>
I am using the following code to read the content of the said file line by line:
while read p ; do
echo "$p"
done < input.txt
This is the... (1 Reply)
Hi All,
I have a requirement where there are 2 files saved on unix directory with names anil_111 and anil_222. I just have to retain the latest file and delete the old file from the directory.
Please help me with the shell script to perform this.
Thanks,
Anil (7 Replies)
Discussion started by: anil029
7 Replies
LEARN ABOUT OPENDARWIN
resize
RESIZE(1) General Commands Manual RESIZE(1)NAME
resize - set environment and terminal settings to current xterm window size
SYNOPSIS
resize [ -u | -c ] [ -s [ row col ] ]
DESCRIPTION
Resize prints a shell command for setting the appropriate environment variables to indicate the current size of xterm window from which the
command is run. For this output to take effect, resize must either be evaluated as part of the command line (usually done with a shell
alias or function) or else redirected to a file which can then be read in. From the C shell (usually known as /bin/csh), the following
alias could be defined in the user's .cshrc:
% alias rs 'set noglob; eval `resize`'
After resizing the window, the user would type:
% rs
Users of versions of the Bourne shell (usually known as /bin/sh) that don't have command functions will need to send the output to a tempo-
rary file and then read it back in with the "." command:
$ resize > /tmp/out
$ . /tmp/out
Resize determines the user's current shell by first checking if $SHELL is set, and using that. Otherwise it determines the user's shell by
looking in the password file. Generally Bourne-shell variants (including ksh) do not modify $SHELL, so it is possible for resize to be
confused if one runs resize from a Bourne shell spawned from a C shell.
OPTIONS
The following options may be used with resize:
-u This option indicates that Bourne shell commands should be generated even if the user's current shell isn't /bin/sh.
-c This option indicates that C shell commands should be generated even if the user's current shell isn't /bin/csh.
-s [rows columns]
This option indicates that Sun console escape sequences will be used instead of the VT100-style xterm escape codes. If rows and
columns are given, resize will ask the xterm to resize itself. However, the window manager may choose to disallow the change.
Note that the Sun console escape sequences are recognized by XFree86 xterm and by dtterm. The resize program may be installed as sunsize,
which causes makes it assume the -s option.
The rows and columns arguments must appear last; though they are normally associated with the -s option, they are parsed separately.
FILES
/etc/termcap for the base termcap entry to modify.
~/.cshrc user's alias for the command.
ENVIRONMENT
TERM set to "xterm" if not already set.
TERMCAP variable set on systems using termcap
COLUMNS, LINES variables set on systems using terminfo
SEE ALSO csh(1), tset(1), xterm(1)AUTHORS
Mark Vandevoorde (MIT-Athena), Edward Moy (Berkeley)
Copyright (c) 1984, 1985 by X Consortium
See X(7) for a complete copyright notice.
X Window System RESIZE(1)