* easy way to read from stdin ? @ 1998-06-23 20:37 Sweth Chandramouli 1998-06-23 22:01 ` Bart Schaefer 0 siblings, 1 reply; 4+ messages in thread From: Sweth Chandramouli @ 1998-06-23 20:37 UTC (permalink / raw) To: ZSH Users this is probably just going to show my colossal cluelessness, but is there an easy way to get a zsh script to read from standard input? i have a script that i'd like to convert into a cgi, but that means that rather than reading input from a file, i'd have to have it come from stdin. i tried a "while read ... ; do ... done" loop with no redirection of input, but that didn't seem to work right. what am i missing here? -- sweth. -- Sweth Chandramouli IS Coordinator, The George Washington University <sweth@gwu.edu> / (202) 994 - 8521 (V) / (202) 994 - 0458 (F) <a href="http://astaroth.nit.gwu.edu/~sweth/disc.html">*</a> ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: easy way to read from stdin ? 1998-06-23 20:37 easy way to read from stdin ? Sweth Chandramouli @ 1998-06-23 22:01 ` Bart Schaefer 1998-06-23 22:42 ` Sweth Chandramouli 0 siblings, 1 reply; 4+ messages in thread From: Bart Schaefer @ 1998-06-23 22:01 UTC (permalink / raw) To: Sweth Chandramouli, ZSH Users On Jun 23, 4:37pm, Sweth Chandramouli wrote: } Subject: easy way to read from stdin ? } } this is probably just going to show my colossal cluelessness, but is } there an easy way to get a zsh script to read from standard input? It should be reading everything except the commands themselves from the standard input "by default." However, I'm puzzled when you say: } ... rather than reading input from a file ... What is it that you are doing to cause it to read from a file? That is, when it's not a cgi, how do you run it? } i tried a } "while read ... ; do ... done" loop with no redirection of input, but that } didn't seem to work right. How exactly did it not work? What, if any, flags are you passing to read? (For example, the -q flag will forcibly open /dev/tty ....) } what am i missing here? You can try "read -u0 ..." to force the input to come from file descriptor zero, but I don't know why that would be necessary. -- Bart Schaefer Brass Lantern Enterprises http://www.well.com/user/barts http://www.brasslantern.com ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Re: easy way to read from stdin ? 1998-06-23 22:01 ` Bart Schaefer @ 1998-06-23 22:42 ` Sweth Chandramouli 1998-06-23 23:50 ` Bart Schaefer 0 siblings, 1 reply; 4+ messages in thread From: Sweth Chandramouli @ 1998-06-23 22:42 UTC (permalink / raw) To: ZSH Users On Tue, Jun 23, 1998 at 03:01:45PM -0700, Bart Schaefer wrote: > On Jun 23, 4:37pm, Sweth Chandramouli wrote: > } Subject: easy way to read from stdin ? > } > } this is probably just going to show my colossal cluelessness, but is > } there an easy way to get a zsh script to read from standard input? > > It should be reading everything except the commands themselves from the > standard input "by default." However, I'm puzzled when you say: > > } ... rather than reading input from a file ... > > What is it that you are doing to cause it to read from a file? That is, > when it's not a cgi, how do you run it? i put a "< filename" after the while read loop, so that it would read input from the file "filename". basically, i'm trying to create a mailto form here--it should take the values from the form in question, do some processing on them, return a web page indicating success or failure, and mail the results off to someone using mailx. the processing i was trying to do is the same as what i was doing elsewhere using an already-existing script, so i figured that if i could just cut&paste that script into my new cgi form, and remove the redirection of stdin from a file, everything would work fine. it _does_ work fine from the command line (e.g. "echo 'testing' | myscript.cgi" does what i expect), but when i run it as a form, it acts as though it is getting no input. i do know that the input is, in fact, getting through to the script, however, because i tried replacing my script with a little perl snippet i found elsewhere that basically pumps stdin into a variable and then prints it to screen, and that worked fine. i don't really have the time or patience right now to do what i should do, and actually learn perl, so i was hoping that there was some subtle point about stdin for a shell script that i was missing. if no one else has any ideas, i'll probably wander over to the perl newsgroups and see if anyone can explain exactly what that perl snippet that i stole is doing, to see if maybe i'm not understanding it correctly. (i should probably do that regardless, i guess...) -- sweth. -- Sweth Chandramouli IS Coordinator, The George Washington University <sweth@gwu.edu> / (202) 994 - 8521 (V) / (202) 994 - 0458 (F) <a href="http://astaroth.nit.gwu.edu/~sweth/disc.html">*</a> ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: easy way to read from stdin ? 1998-06-23 22:42 ` Sweth Chandramouli @ 1998-06-23 23:50 ` Bart Schaefer 0 siblings, 0 replies; 4+ messages in thread From: Bart Schaefer @ 1998-06-23 23:50 UTC (permalink / raw) To: Sweth Chandramouli, ZSH Users On Jun 23, 6:42pm, Sweth Chandramouli wrote: } Subject: Re: Re: easy way to read from stdin ? } } > What is it that you are doing to cause it to read from a file? That is, } > when it's not a cgi, how do you run it? } i put a "< filename" after the while read loop, so that it would } read input from the file "filename". basically, i'm trying to create a } mailto form here--it should take the values from the form in question, } [...] } but when i run it as a form, it acts as though it is getting no input. Is the form using METHOD=post to send data to the server? Otherwise there isn't any standard input. The enviroment variable CONTENT_LENGTH should tell how many bytes you can expect to read. Try doing local input read -u0k $CONTENT_LENGTH input This should stuff the entire stdin (up to $CONTENT_LENGTH bytes) into the variable "input". The input may be coming to you with "\r\n" line endings, in which case I'm not sure how a plain "read" behaves. -- Bart Schaefer Brass Lantern Enterprises http://www.well.com/user/barts http://www.brasslantern.com ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~1998-06-23 23:57 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 1998-06-23 20:37 easy way to read from stdin ? Sweth Chandramouli 1998-06-23 22:01 ` Bart Schaefer 1998-06-23 22:42 ` Sweth Chandramouli 1998-06-23 23:50 ` Bart Schaefer
Code repositories for project(s) associated with this public inbox https://git.vuxu.org/mirror/zsh/ This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).