OK, there must be something quite different about the Mac shell, it doesn't seem to be recognising -n in the echo command (I am a bit puzzled as I thought that was fairly standard and seems to be supported by the shells I tried on my linux system). Anyway I think same advice, try removing the -n option (possibly should have paid more attention to your first post where you said someone had told you to use echo "\00" to get the null).
Michael Whapples On 29/09/09 00:15, james collins wrote: > Now my synthesizer, says the line but adds a "n"? > > Sent from my iPhone > > On Sep 28, 2009, at 6:49 PM, Michael Whapples<[email protected]> wrote: > > >> Could the extra characters/text you hear be "e n"? If so it seems your >> copy of echo is not recognising the -e option, but if speech is coming >> out then it must be inserting the NULL. Try editing your script to >> remove the -e option from the echo command, does it help? Having a >> look >> at various shells on my system it seems some versions of echo will do >> the escape sequences needed to get the NULL character even without >> giving the -e option. >> >> Michael Whapples >> On 28/09/09 22:49, james collins wrote: >> >>> The script worked, but my synthesizer says something in the >>> beginning? >>> Like it adds, it sounds like "bn" or "vn" to what I write? >>> >>> Sent from my iPhone >>> >>> On Sep 28, 2009, at 5:08 PM, Michael Whapples<[email protected]> >>> wrote: >>> >>> >>> >>>> The first line should start while and end with do >>>> second line has an echo command >>>> Third line should just be done >>>> >>>> Hope that makes it clearer as to the lines. >>>> >>>> As for shells, you probably have bash, so you could replace sh with >>>> bash >>>> when launching the script or in the #!/bin/sh (so line reads #!/bin/ >>>> bash >>>> ). I am using bash here. >>>> >>>> Michael Whapples >>>> On 28/09/09 21:42, james collins wrote: >>>> >>>> >>>>> 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 >>>>> >>>>> >>>>> >>>> _______________________________________________ >>>> 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 > _______________________________________________ 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
