[SH] Problem reading input in script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting [SH] Problem reading input in script
# 1  
Old 11-06-2010
Question [SH] Problem reading input in script

Alright, so the goal of my script is to read text from standard input and store it into a file using the ex-editor:

so far i've got this, but it doesn't work.

Code:
#!/bin/s
read text
ex $1 >> HERE
text
HERE

I don't get any errors either, so i don't know what i'm doing wrong.
# 2  
Old 11-06-2010
I think you've got your brackets backwards. >> tells it to append to the HERE file, not read from a here document. And since it never reads the here document, it just hangs reading on STDIN instead. (For future reference, "hangs" is a much more useful description than "doesn't work", which could mean nearly anything...)

If it ever got beyond that it'd consider 'text' and 'HERE' on subsequent lines to be syntax errors.

So, nearly right. Try:

Code:
#!/bin/s
read text
ex $1 <<HERE
text
HERE

# 3  
Old 11-06-2010
nope, it says: text is not an editor commando

btw now i got this:
Code:
#!/bin/sh
read text
ex $1 <<HERE
$text
HERE

# 4  
Old 11-06-2010
Well, what are you typing into the script? How are you running it? Maybe it isn't an editor command.
# 5  
Old 11-07-2010
alright, so i've come already pretty far.

So far i've got this
Code:
#!/bin/sh
read text
ex $1 <<'HERE'
a
text
.
wq
'HERE'

The only thing that has to be done now is that the text given by the users should be put in the file. But ex just puts the word 'text' in it instead of the text given by the user.
# 6  
Old 11-07-2010
This should do it:

Code:
#!/bin/sh
read text
ex $1 <<'HERE'
a
$text
.
wq
'HERE'

# 7  
Old 11-07-2010
You could get the same results with:

read "text"
echo "$text" > file

using read won't work if there are newlines since read quits when one is entered. A "here" document is better for working with existing files.

Bill
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Reading user input...problem with tab key

Hi all, I have a little problem with my shell script (reading user input, save user input to variable, invisible characters in the log file :() printf "1. What's your file path?" /path/to/my/file read -e FILE I have invisible characters in my log file (e.g. <ESC> or ^G) when I'm... (3 Replies)
Discussion started by: splendid
3 Replies

2. Shell Programming and Scripting

Problem in reading the input value

echo "Enter the Value : " read value sed '1s:\(.\{6\}\)\(.\{4\}\):\1'$value':' flextran$RUN_DATE-completed.txt > temp.txt mv temp.txt flextran$RUN_DATE-completed.txt on the run time after entering the input value it waits for keystroke and the values is not input to the function The output... (4 Replies)
Discussion started by: rammm
4 Replies

3. Shell Programming and Scripting

Reading CLI input for script

I've always written scripts where the user executes the script and I prompt them for what they want to do. But I'm trying to write a script where root executes the script 'lock' or its hard-link 'unlock' and the script will passwd -l or passwd -u an account depending on the choice. What would... (3 Replies)
Discussion started by: ADay2Long
3 Replies

4. Shell Programming and Scripting

Perl Script Not Reading Input Files Correctly

This is one of the strangest things that's happening to me. I'm writing a new Perl script that is trying to read a file. The file is originally in .mof format, but I also saved the contents into a .txt file. As a simple test, I wrote this: #!/user/bin/perl -w use strict; ... (3 Replies)
Discussion started by: kooshi
3 Replies

5. Shell Programming and Scripting

awk script - reading input lines

Can I do something like, if($0==/^int.*$/) { print "Declaration" } for an input like: int a=5; If the syntax is right, it is not working for me, but I am not sure about the syntax. Please help. Thanks, Prasanna (1 Reply)
Discussion started by: prasanna1157
1 Replies

6. UNIX for Dummies Questions & Answers

Intermittent problem reading from an input file.

First of all thanks to all for the good post, and the great site. I'm a noob, but I've been able to learna a lot by checking past posts. I haven't been able to make sense of a problem that I've been working on for a while, hopefully someone can help me out. The script I wrote telnets into... (7 Replies)
Discussion started by: Wallygooo32
7 Replies

7. Shell Programming and Scripting

Reading specific contents from 1 input files and appending it to another input file

Hi guys, I am new to AWK and unix scripting. Please see below my problem and let me know if anyone you can help. I have 2 input files (example given below) Input file 2 is a standard file (it will not change) and we have to get the name (second column after comma) from it and append it... (5 Replies)
Discussion started by: sksahu
5 Replies

8. Shell Programming and Scripting

Script for reading an input file

#!/bin/sh rpt="/export/home/legato/rpt_offsite"/test_eject.tape cat <$rpt while read line do echo $line perform routine done I am trying to read the contents of this file line by line and perform a routine for each line read. The file contents are numbers.. What is wrong with my... (1 Reply)
Discussion started by: gzs553
1 Replies

9. UNIX for Dummies Questions & Answers

Reading input to create a variable in a script?

I would like to prompt for input and then use it as a variable in a script. Something like this. #!/bin/ksh echo "What is your name?: \c" read response echo "Your name is $reply" >file.txt done exit 0 What am I missing? Thanks, (7 Replies)
Discussion started by: darthur
7 Replies

10. UNIX for Dummies Questions & Answers

Reading Input in a Script

#!/usr/bin/sh echo "Enter reason:" echo "> \c" read $reason $reason >> access.log This doesnt work for me. Can someone tell me how I would read the input from what the person types, and then append that to the log file? Regards (2 Replies)
Discussion started by: alwayslearningunix
2 Replies
Login or Register to Ask a Question