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>
next in thread | previous in thread | raw e-mail | index | archive | help
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/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4FE37203.3020404>