Date: Thu, 21 Jun 2012 14:12:03 -0500 From: CyberLeo Kitsana <cyberleo@cyberleo.net> To: Odhiambo Washington <odhiambo@gmail.com> Cc: questions <questions@freebsd.org> Subject: Re: A bash scripting question Message-ID: <4FE37203.3020404@cyberleo.net> In-Reply-To: <CAAdA2WPJkAY7pHau6TCHSLN1faEWS9ZMU1Jq=64YrtmKyLBQpQ@mail.gmail.com> References: <CA%2BC6gOgi2kfEpR07Dk0F%2BfbAiJKbDE5NBh9ZrXbkzOB9GrFD5w@mail.gmail.com> <CAAdA2WNnJc%2BWc3guqgPZaTVXneYFvzaAj=z_O-Jzcp45vSZi_Q@mail.gmail.com> <CA%2BC6gOj60PM0WGR9jRdcj0erSNrAzXLQw_gBiyuBQu3nhgiQTg@mail.gmail.com> <CAAdA2WM0KM1yZPZUpON=stc-mLs8zYiPXaP5=EU642UKT0CQOg@mail.gmail.com> <CA%2BC6gOhd4Mk8CkMkODRLvSQThOCx49JSVm4=ihcqFVV1U7C2ig@mail.gmail.com> <CAEobancjDn1TYCETQVw0jAPP2OjVBZX=DUeLEN612nW=WCuqqA@mail.gmail.com> <CAEobane5k%2BdtoWF_cxxZjJQdT4PBfN_44PK=xQgZUvM_9nz77g@mail.gmail.com> <CA%2BC6gOgErgcYWzo=YqpoywscoQQ94zG8OPsJHN6TjtyvMnwXtg@mail.gmail.com> <CAAdA2WO5w_=-OfJQfM803%2BLM%2BGgd5zPmtcYVHCWo-GShAxvQbA@mail.gmail.com> <CA%2BC6gOh25C8mNNjMrVJzWQnnSzYK2p6h6Sh_=k7qHSMzgQ4Vow@mail.gmail.com> <CAAdA2WO88wboMKKMDsL2TYOG9vfk=WfGbx=xA=suySc_qpgnCQ@mail.gmail.com> <CA%2BC6gOgmMJp_OWEOSm=4GFR%2BCDiT6eduEmwSx8u2oogVPCZRww@mail.gmail.com> <CA%2BC6gOioF_wYRXWQWeLUF3FPXj8dP82DAjNh353%2Bp0OpHHcB0Q@mail.gmail.com> <CAAdA2WPJkAY7pHau6TCHSLN1faEWS9ZMU1Jq=64YrtmKyLBQpQ@mail.gmail.com>
index | next in thread | previous in thread | raw e-mail
On 06/21/2012 08:40 AM, Odhiambo Washington wrote:
> How Can I simplify/perfect the following script, so that I read _ALL_ the
> lines in the file and act on the content as shown below, so that I do not
> have to specifiy an action per line?
>
> This below is doing exactly what i need BUT reading one line at a time
> untill the 10th line, if i want more i add manually...
> This might help some1 someday! But if there is a way to perfect it please
> do so.....
>
> #!/usr/local/bin/bash
>
> smsfile=email_to_sms
> `grep Subject /var/spool/mail/sms >>$smsfile`
> if [[ -s $smsfile ]] ; then
> cat /dev/null > /var/spool/mail/sms
> sed -i 's/Subject: //g' $smsfile
> echo `sed -n '1p' $smsfile` | /usr/bin/gammu --sendsms TEXT `awk 'NR==1
> {print $1}' $smsfile`
> echo `sed -n '2p' $smsfile` | /usr/bin/gammu --sendsms TEXT `awk 'NR==2
> {print $1}' $smsfile`
> echo `sed -n '3p' $smsfile` | /usr/bin/gammu --sendsms TEXT `awk 'NR==3
> {print $1}' $smsfile`
> echo `sed -n '4p' $smsfile` | /usr/bin/gammu --sendsms TEXT `awk 'NR==4
> {print $1}' $smsfile`
> echo `sed -n '5p' $smsfile` | /usr/bin/gammu --sendsms TEXT `awk 'NR==5
> {print $1}' $smsfile`
> echo `sed -n '6p' $smsfile` | /usr/bin/gammu --sendsms TEXT `awk 'NR==6
> {print $1}' $smsfile`
> echo `sed -n '7p' $smsfile` | /usr/bin/gammu --sendsms TEXT `awk 'NR==7
> {print $1}' $smsfile`
> echo `sed -n '8p' $smsfile` | /usr/bin/gammu --sendsms TEXT `awk 'NR==8
> {print $1}' $smsfile`
> echo `sed -n '9p' $smsfile` | /usr/bin/gammu --sendsms TEXT `awk 'NR==9
> {print $1}' $smsfile`
> echo `sed -n '10p' $smsfile` | /usr/bin/gammu --sendsms TEXT `awk 'NR==10
> {print $1}' $smsfile`
> else
> echo "***********Sorry the SMS FILE "$smsfile" is empty.************"
> fi
> gammu-smsd start
> cat email_to_sms >> email_to_sms2
> cat /dev/null > email_to_sms
Off the top of my head:
----8<----
#!/bin/sh -e
sed -e '/^Subject: /!d; s/^Subject: //' /var/spool/mail/sms > "${smsfile}"
:>/var/spool/mail/sms
xargs -L1 /usr/bin/gammu --sendsms TEXT < "${smsfile}"
mv -f "${smsfile}" "${smsfile}.bak"
----8<----
No loops necessary.
By the way, what's gammu, and why is it in /usr/bin ?
--
Fuzzy love,
-CyberLeo
Technical Administrator
CyberLeo.Net Webhosting
http://www.CyberLeo.Net
<CyberLeo@CyberLeo.Net>
Furry Peace! - http://wwww.fur.com/peace/
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4FE37203.3020404>
