sh script writing help
Matthew Seaman
m.seaman at infracaninophile.co.uk
Sun May 30 07:22:41 UTC 2010
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 30/05/2010 07:58:58, Aiza wrote:
> Anh Ky Huynh wrote:
>> On Sun, 30 May 2010 14:10:36 +0800
>> Aiza <aiza21 at comclark.com> wrote:
>>
>>> Dan Nelson wrote:
>>>> In the last episode (May 30), Aiza said:
>>>>> In a .sh type script I have && exerr " very long message gt 250
>>>>> char" all on the same line. This is a real pain to edit.
>>>>>
>>>>> Is there some code a can use to continue this on the next line
>>>>> so I can see it on the screen and still have the command
>>>>> function? I tried \ with no luck.
>>>> \ should work just fine:
>>>>
>>>> $ echo "long line \
>>>> split onto two"
>>>> long line split onto two
>>>> $
>>>>
>>>
>>> You example works only because the continuation starts at position
>>> 1.
>>>
>>> $ [ -n "${test-name-fowarding}" -o -n "${test-noname}" ] || \
>>> exerr "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\
>>> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
>>> this is for ease of reading the code but will display with a bunch
>>> of spaces in the middle of the sentence. The \ works fine bypassing
>>> all white space between code not so for white space between the "
>>> ".
>>>
>>> Is there a coding method to get around this?
>>
>> Do you try to read your expression from a file?
>> exerr `cat /path/to/data`
>>
>> the contents of /path/to/data are your very long string.
A standard means of doing this sort of thing is to use a 'Here' document:
if ! [ -n "${test-name-forwarding}" -o -n "${test-noname}" ]; then
exerr <<-E_O_EXERR
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
E_O_EXER
fi
The '<<-' operator is a variant on the usual '<<' operator used for
this: the only difference is that it strips leading tabs from the lines
in the here document.
Cheers,
Matthew
- --
Dr Matthew J Seaman MA, D.Phil. 7 Priory Courtyard
Flat 3
PGP: http://www.infracaninophile.co.uk/pgpkey Ramsgate
JID: matthew at infracaninophile.co.uk Kent, CT11 9PW
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.14 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAkwCEjQACgkQ8Mjk52CukIzc7gCbBalo5oJcsw+jkXHOm4+8qU3f
l2EAn30WwaSL3kTZ1iy3FGkTxQlBZ3pr
=WxjG
-----END PGP SIGNATURE-----
More information about the freebsd-questions
mailing list