On my phone which is where I am reading this email the lines you gave gotten broken up into four lines? Just wondering how to enter those lines:
while starts the 1st line and it ends w/; do starts the second line and done is on the third line? Is that right? Also I looked at the man page for echo under bash on my computer, there is a -n option but no -e option, I wondered if that would make a difference? I guess I am using sh though? Sent from my iPhone On Sep 28, 2009, at 3:26 PM, Michael Whapples <[email protected]> wrote: > You are correct that you would put at the beginning of the script > the line: > #!/bin/sh > > Also how you said to start it is correct (in fact for running it in > the > way you describe that #!/bin/sh line wouldn't be needed). > > An alternative would be to set the script to be executable, a > command like: > chmod a+x your_file_name > > will set the file you name in the place of your_file_name to be > executable by all users. Then you can run it by simply giving the file > name on the command line. However for this to work you MUST remember > to > include that #!/bin/sh line otherwise the system won't know what to > run > the script with. Also if you use this you can put the script in a > directory pointed at by $PATH and you can run it using just the > script's > name (eg. if you called the script file "speak_lines" and placed it > in a > directory in $PATH (on my linux system /usr/local/bin would be a good > choice) then it could be run just giving the speak_lines command). > > Now for how this script behaves: > Precisely how you described you wanted things to work. Launch the > script > and the cursor is placed on a new line waiting for you to enter text. > Enter text and press enter, it will append a NULL character to the > text > and send it to /dev/cu.usbserial-FTKVMAFF and hopefully the synth will > talk. The cursor will have dropped down a line and be waiting for more > text, keep entering lines of text until you get bored with it, at > which > point press ctrl+d on a blank line (ends file, tells the script no > more > text to read) or ctrl+c (not so preferred as this kills it) and in > either case you will find yourself back at the shell prompt. > > Michael Whapples > On 28/09/09 20:09, james collins wrote: >> Thanks for the responses. To make a script out of the lines you gave >> me, would I write in a text editor, first line: >> #!/bin/sh >> How would I invoke this script, like let's say I made a script, and >> called it samplescript.txt, if I was in the directory where it was >> located I would say: >> sh ./samplescript.txt >> what would happen next? In the script cat never gets called? Would my >> cursor drop down a line and I would enter text? And when I hit return >> a NUL character would be appended to the end of the text? And then if >> I hit cntrl-c it would exit cat? >> >> Sent from my iPhone >> >> On Sep 28, 2009, at 1:46 PM, Michael Whapples<[email protected]> >> wrote: >> >> >>> You can do what you are asking for in three lines: >>> >>> while read myline ; do >>> echo -e -n "$myline\00">/dev/cu.usbserial-FTKVMAFF >>> done >>> >> On my phone it is written as four lines? >> >>> For convenience you may want to put those three lines in a text file >>> to >>> make a script. >>> >>> Michael Whapples >>> On 28/09/09 18:06, Dave Mielke wrote: >>> >>>> [quoted lines by james collins on 2009/09/28 at 12:29 -0400] >>>> >>>> >>>> >>>>> Just wondering what I am doing wrong? I want to use cat, but I >>>>> want to >>>>> append a NUL character to what I type? I tried typing: >>>>> echo -e -n '\000' | cat> /dev/cu.usbserial -FTKVMAFF >>>>> What I was hoping would happen, is my cursor would drop down a >>>>> line >>>>> and I would be in the cat command, I would then right some text >>>>> and >>>>> when I hit return, a NUL character would be appended to the text I >>>>> had >>>>> written and my synthesizer would speak the words I had written? >>>>> >>>>> >>>> I think you mustn't be very familiar with Unix-style operating >>>> systems. >>>> >>>> When you join two commands with |, what you're doing is redirecting >>>> the input >>>> of the second command (in your case, cat) away from your keyboard >>>> and to the >>>> output of the first command (in your case, echo). >>>> >>>> There's no magic way to do what you're wanting to do. If you want a >>>> NUL >>>> appended to each line you type before that line is written to your >>>> synthesizer >>>> then you're going to have to write a simple program to do exactly >>>> that. In this >>>> case, a fairly simple shell script should suffice. >>>> >>>> >>>> >>> _______________________________________________ >>> This message was sent via the BRLTTY mailing list. >>> To post a message, send an e-mail to: [email protected] >>> For general information, go to: http://mielke.cc/mailman/listinfo/brltty >>> >> _______________________________________________ >> This message was sent via the BRLTTY mailing list. >> To post a message, send an e-mail to: [email protected] >> For general information, go to: http://mielke.cc/mailman/listinfo/brltty >> > > _______________________________________________ > This message was sent via the BRLTTY mailing list. > To post a message, send an e-mail to: [email protected] > For general information, go to: http://mielke.cc/mailman/listinfo/brltty _______________________________________________ This message was sent via the BRLTTY mailing list. To post a message, send an e-mail to: [email protected] For general information, go to: http://mielke.cc/mailman/listinfo/brltty
