[BRLTTY] Appending NUL to cat

james collins james.collins75 at gmail.com
Mon Sep 28 17:49:26 EDT 2009


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 <mwhapples at aim.com> 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<mwhapples at aim.com>   
>> 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<mwhapples at aim.com>
>>>> 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: BRLTTY at mielke.cc
>>>>> 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: BRLTTY at mielke.cc
>>>> 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: BRLTTY at mielke.cc
>>> 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: BRLTTY at mielke.cc
>> 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: BRLTTY at mielke.cc
> For general information, go to: http://mielke.cc/mailman/listinfo/brltty


More information about the BRLTTY mailing list