[BRLTTY] Appending NUL to cat

Michael Whapples mwhapples at aim.com
Mon Sep 28 17:08:17 EDT 2009


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
>    



More information about the BRLTTY mailing list