[BRLTTY] Appending NUL to cat

james collins james.collins75 at gmail.com
Mon Sep 28 16:42:18 EDT 2009


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


More information about the BRLTTY mailing list