shell script problem


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users shell script problem
# 1  
Old 08-30-2001
Question shell script problem

Hi,

I have a shell script problem. I'm using /bin/ksh and I have a script that reads a number of table names from a file adn then for each table name, it creates the table in Oracle8i via sqlplus,

The main sceleton looks something like:

while read tab_name
do

# BODY

done < $file

Now, if i just print out $tab_name in the BODY of the while loop, then the while loop behaves as expected.

Howeveer, if I include calls to routines that perform calls to 'sqlplus' and create $tab_name in Orcle8i, the while loop is only executed once. Basically, only the first iteration is performed, and only one $tab_name is read from $file.

Any idea why this is happening?

Any help will be greatly appreciated.

S T

# 2  
Old 08-31-2001
Hi,

i test a small script and it works fine. Maybe there's something wrong in the "BODY", can you send the complete loop to me ?
# 3  
Old 08-31-2001
If I understand what you are saying, the code you are adding to the loop somewhere includes a program that is reading from standard-in. Since standard-on is set to $file within the loop, it is reading all of your input from $file.

One rememdy would be something like:
sqlplus < /dev/null
which would at least leave the outer loop intact.

But the fact that the program is unexpectedly reading from standard-in indicates that you have others as well.
# 4  
Old 09-01-2001
You'll probably have to do:

sqlplus -s ...

Also, don't terminate the sql script with a '/'
or 'bye' or anything.
# 5  
Old 09-02-2001
Data problem persists

Hi,

I modified my shell script structure and I no longer call 'sqlplus' from within the while loop (I only build an sql file within the loop now).

However the problem specified in my original e-mail still persists.

The 'BODY' section of the while loop (in summary) executes the following commands:

- /usr/sbin/useradd someuser
- echo "some text" >> /programs/files/somefile
- echo "other text" >> /programs/files/otherfile
- more "somefile" | grep "some seach string"
- su -u "someuser" -c "some command"

Could the above commands somehow interupt the while loop from
normal execution?

Maybe stdin which is originally set to $file (see previous message)
is being overwritten by one of the command in the 'BODY'. I do not explicitly ovewrite stdin anywhere in the 'BODY' of the while loop.

ref:
while read tab_name
do

# BODY

done < $file

(loop only executes once, even though $file contains
numerous entries)

Any help will be greatly appreciated.

Regards,
S. Trpeski
# 6  
Old 09-03-2001
Simple suggestion

Have you tried running the script with tracing: set -x and see what happens

Did you check that your input file does not contain blank lines: e.g.: the 2nd line?
# 7  
Old 09-03-2001

Thanks for the help/suggestions everyone ...

I have tried running with the -x debug option and the script terminates at the beggining of the second iteration. Namely,

1. it reads the "while read name" line initially.
2. Executes the loop body.
3. it reads the "while read name" line for the second time.
4. stops because it 'thinks' there is no more data in the $file.

I think this indicates that I have lost my 'stdin' pointer somewhere
in the body of the while loop, but being fairly new with shell scripts, I'm not sure what is happening exactly.

Also, the $file does not contain an empty second line.

Cheers,
Steve T.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell script newbie, what is problem with my script?

Hello, Ubuntu server 11.10 can anybody help what is problem with my shell script? #!/bin/bash #script to find out currently logged on user is root or not. if ] then echo "You are super" else echo "You are awesome!" fi When I run script, I get following output ./uid: line 3: I... (4 Replies)
Discussion started by: kaustubh
4 Replies

2. Shell Programming and Scripting

problem in shell script

hi every body this is my first thread in this forum, i hope find a solution for my problem i have to write a script bt i still have some error and i don't know how to correct them $ for i in `seq 500 505`; do ./generateur_tache $i tache$i.txt; nprocs=$i; copt$i=`cat tache$i.txt | ./copt.awk` ;... (10 Replies)
Discussion started by: ordo_ordo
10 Replies

3. AIX

There's problem with shell script...Help me~

Hello, guys... I'm new to IBM AIX server admin. Actuall, I administrate Oracle 10g on it. *SYSTEM INFO - IBM AIX 6 Powerpc - Oracle 10g R2 (10.2.0.4.0 - 64bit) I wrote a script like bellow... DATE='date' cp /oracle/product/10g/network/log/listener_temp.log... (4 Replies)
Discussion started by: daniel han
4 Replies

4. Shell Programming and Scripting

Shell script problem

Hello. I am trying to make this shell script bellow work on my server wich should take the names in newacc.cvs and add them to the system. For each user the script should ask me to enter a password for the user im adding and then add them to the system, however my current solution do not work atm... (7 Replies)
Discussion started by: ryzzaze
7 Replies

5. Shell Programming and Scripting

Problem Shell Script

hy, i have a problem with shell script with sybase. if start single command this script working, but if run into file for example select.sh, the script doesn't create output. Can you help me please ??? thank's USER=`cat $SYBASE/.asepwd | cut -d: -f2 | head -1` PWD=`asepwd.sh $USER... (4 Replies)
Discussion started by: Dolcissimo76
4 Replies

6. Shell Programming and Scripting

call shell script from perl cgi script problem

hi,, i have perl scipt with line : system('./try.sh $t $d $m'); in shell scipt try.sh i have the line: echo $1 its not printing value of $t that i hav passed..y is it so..i am running it from apache web server (2 Replies)
Discussion started by: raksha.s
2 Replies

7. Shell Programming and Scripting

Problem in shell script

:confused: Hi, I have written a script which calls a stored procrdure. The Stored procedure has 2 inputs and 6 outputs. I need to capture one of the outputs. But I am not able to get any result from this simple script- ! /bin/ksh echo "connect to dbau user etlbitst using anf1892;" >... (1 Reply)
Discussion started by: arnie_nits
1 Replies

8. UNIX for Dummies Questions & Answers

Shell script problem

Hi, I have a shell script in which I am calling a function from a different shell script. This functions executes the SQL and the results are stored in a log file. If the result of the SQL is "no rows selected" then I need to exit the main shell script. My shell script is executing fine if... (5 Replies)
Discussion started by: shashi_kiran_v
5 Replies

9. Shell Programming and Scripting

shell script problem

shell script for sorting,searchingand insertion/deletion of elements in a list (1 Reply)
Discussion started by: jayaram_miryabb
1 Replies
Login or Register to Ask a Question