This week's book giveaway is in the Mac OS forum.
We're giving away four copies of a choice of "Take Control of Upgrading to Yosemite" or "Take Control of Automating Your Mac" and have Joe Kissell on-line!
See this thread for details.
The moose likes Linux / UNIX and the fly likes read command not working in ksh script Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


JavaRanch » Java Forums » Engineering » Linux / UNIX
Bookmark "read command not working in ksh script" Watch "read command not working in ksh script" New topic
Author

read command not working in ksh script

Sujoy Choudhury
Ranch Hand

Joined: Sep 17, 2008
Posts: 136

I am trying to read from user input in a certain condition.
The script doesn't wait for user input at all.




The script prints
Please enter Name:
Name read from user:

I tried with many combination of "read" command like read -rn 0 NAME. Still not working.

Thanks and Regards,
~Sujoy
Sujoy Choudhury
Ranch Hand

Joined: Sep 17, 2008
Posts: 136

Is this ksh issue?
Cause the same command read works in the console.
Is that when I try to run the same command inside from a ksh script it doesn't work at all.
Peter Johnson
author
Bartender

Joined: May 14, 2008
Posts: 5836
    
    7

Exactly how are you running that script? Are you starting it from a command prompt, and if so, how are you starting it? There are various ways of starting a script where a different stdin that what you might expect is supplied, which could account for this behavior.


JBoss In Action
Sujoy Choudhury
Ranch Hand

Joined: Sep 17, 2008
Posts: 136

Hi Peter,
Thanks for your reply.

My script is like this:


I am calling the script in this way ...


Now this doesn't wait to take the user input.
Peter Johnson
author
Bartender

Joined: May 14, 2008
Posts: 5836
    
    7

Are you running the command from ksh or from bash?
Sujoy Choudhury
Ranch Hand

Joined: Sep 17, 2008
Posts: 136

I am running it from bash.
Peter Johnson
author
Bartender

Joined: May 14, 2008
Posts: 5836
    
    7

Try running it from ksh. I think that when running it from bash, you end up with a new session with a different stdin, which is why you are not being prompted.
Sujoy Choudhury
Ranch Hand

Joined: Sep 17, 2008
Posts: 136

Hi Peter,
Thanks for your reply.
I keep on waiting for your reply.

Well, I just tried running from ksh shell too. I got the same issue.
This is what I did, I typed `which $SHELL` that returned me /bin/sh which means it's bash.
On my old shell I typed "ksh".
And then tried to execute the same script.


Now the point is, even if I typed ksh and the shell changed, but when I tried to run `which $SHELL` that returned me the same /bin/sh.
Do I have to set some path or something to point to ksh shell.

Thanks for your help. Much appreciated.
Sujoy Choudhury
Ranch Hand

Joined: Sep 17, 2008
Posts: 136

One of my colleague figured this out for me.

There was a while loop in a different function which was like this:

`grep ... ` | while read word; do

# calling the function where I was using read command...


done

So just by changing the while to for loop that issue got resolved...
 
GeeCON Prague 2014
 
subject: read command not working in ksh script