Walt Mankowski on 24 Aug 2018 12:52:25 -0700


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: [PLUG] shell scripting help


The linux subsystem uses apt to manage its packages.

On Fri, Aug 24, 2018 at 03:42:04PM -0400, Will wrote:
> All I can say is... If you are forced to use Windows, install whatever you
> want using chocolatey and maintain it that way. They do have a cygwin
> package. I have not looked to see if they install the linux subsystem or
> not.
> 
> On Fri, Aug 24, 2018, 15:29 Walt Mankowski <waltman@pobox.com> wrote:
> 
> > The linux subsystem on Windows 10 gives you a shell prompt and most of
> > your favorite command line tools.
> >
> > On Fri, Aug 24, 2018 at 02:19:38PM -0400, Will wrote:
> > > Install git, use git bash if a VM is not possible. I think Rich Freeman
> > > said something in the past about Gentoo Prefix and cygwin being pretty
> > nice
> > > if you want something more light weight than a VM with all your bash
> > tools
> > > and toys.
> > >
> > > -Will C
> > >
> > > On Fri, Aug 24, 2018, 13:58 Michael Lazin <microlaser@gmail.com> wrote:
> > >
> > > > Thanks JP!  I remember meeting you at a few plug meetings.  I actually
> > > > live very close to where plug central meets but still work in the
> > distant
> > > > suburbs so it's hard to make it to meetings.  I am going to be at
> > FOSSCON
> > > > but I'm not sure what time.
> > > >
> > > > On Fri, Aug 24, 2018 at 1:50 PM, JP Vossen <jp@jpsdomain.org> wrote:
> > > >
> > > >> Ouch, sorry to hear about the Windows part.  :-)  I'm forced to use a
> > > >> Windows laptop at $WORK and loath it, I do all my real work on a Mint
> > VM
> > > >> thought running it on top of Windows is like building a house on sand
> > (I
> > > >> snapshot it a lot).
> > > >>
> > > >> I know you got your script working, but all those greps are
> > inefficient
> > > >> because each `|` is another sub-shell.  The following is untested
> > since I
> > > >> don't have your data, and I merged all the `grep -v` to *before* the
> > sort
> > > >> which might break something though I don't see how it could.  I also
> > broke
> > > >> the long lines before some MUA or MTA does it for me.  Don't use
> > before
> > > >> testing well!  Of course.
> > > >>
> > > >> Prompted:
> > > >> ----
> > > >> #!/bin/bash -
> > > >> # Add date and comment here
> > > >>
> > > >> read -p "What is the filename you want to grep? " file_name
> > > >> egrep '\b[A-Z]+| [0-9:]+ \b' "$file_name" \
> > > >>   | egrep -v 'anaged|No|Na|Ser|Ty|Contact' | sort -u
> > > >> ----
> > > >>
> > > >> From command line:
> > > >> ----
> > > >> #!/bin/bash -
> > > >> # Add date and comment here
> > > >>
> > > >> # Usage:: <script name> <file name>
> > > >> egrep '\b[A-Z]+| [0-9:]+ \b' "$1" \
> > > >>   | egrep -v 'anaged|No|Na|Ser|Ty|Contact' | sort -u
> > > >> ----
> > > >>
> > > >> Various rambling:
> > > >>
> > > >> Always add at least a comment and ideally a day, describing your
> > > >> *intent*.  You will thank yourself 6 months from now.
> > > >>
> > > >> You can use `read -p` to get rid of the `echo`.
> > > >>
> > > >> Try `help read` since `man read` will probably give you the Bash man
> > > >> page, which is good reading but not really helpful in a case like
> > this.
> > > >> `help` gives help on bash built-ins like `read`, `set`, `test` (really
> > > >> useful) and lots more.
> > > >>
> > > >> As pointed out elsewhere, giving it the file name on the command line
> > is
> > > >> more Unix-y, so there's a versions does that.  Actually, using it as a
> > > >> "filter" would be even more Unix-y, but one thing at a time.  :-)
> > > >>
> > > >> There is also obviously zero sanity or error checking, though in this
> > > >> case that's not a big deal.
> > > >>
> > > >> You don't need ';' statement terminators.  They don't hurt, but they
> > are
> > > >> unnecessary noise.
> > > >>
> > > >> The trailing "-" in the shebang line `#!/bin/bash -` protects against
> > an
> > > >> ancient kernel vulnerability.  I'm not even 100% sure it still
> > matters, but
> > > >> it can't hurt and it's arguably a good habit.
> > > >>
> > > >> Semi-related, I like doing "top N" lists like:
> > > >>         <stuff> | sort | uniq -c | sort -rn | head -n10
> > > >>
> > > >>
> > > >> There are tools (getclip.exe and putclip.exe) that let you read/write
> > the
> > > >> windows clipboard from the command line.  I've never tried those in
> > WSL,
> > > >> but they used to be GREAT with the UnxUtils to grab a column of, say,
> > IPAs
> > > >> from a spreadsheet and:
> > > >>         getclip | sort | uniq -c | sort -rn | head -n10 | putclip
> > > >>
> > > >> See my very old and not really relevant to WSL pages at:
> > > >> * https://www.jpsdomain.org/windows/win-tools.html
> > > >> * https://www.jpsdomain.org/windows/winshell.html
> > > >>
> > > >>
> > > >> On 08/24/2018 12:42 PM, Michael Lazin wrote:
> > > >>
> > > >>> Thank you all, it's working now.  I actually am not in the role of
> > being
> > > >>> a Linux user right now.  Maybe that is why interactive scripts
> > appeal to me
> > > >>> lol.  I did forensics on Debian web servers for 10 years and lost my
> > job
> > > >>> and ended up finding a job as a Windows sysadmin rather quickly and
> > took it
> > > >>> because it beats no job.  I installed the linux subsystem for Windows
> > > >>> because I do love bash and have found it useful for getting some
> > mundane
> > > >>> tasks done.  I am also learning powershell, I know it stands against
> > > >>> everything in this group, but I keep telling myself knowing two OS's
> > will
> > > >>> eventually work to my advantage.  Thanks.
> > > >>>
> > > >>> On Fri, Aug 24, 2018 at 12:28 PM, prushik <prushik@gmail.com
> > <mailto:
> > > >>> prushik@gmail.com>> wrote:
> > > >>>
> > > >>>     Very few Linux users enjoy interactive scripts, but whatever
> > floats
> > > >>>     your boat.
> > > >>>     Your script has a few issues, but the biggest is that you seem
> > to be
> > > >>>     confusing bash and php. $ is not a variable indicator in bash,
> > its
> > > >>>     an expansion operator. This means that your read $i line gets
> > > >>>     expanded to read "", since i is unset at the beginning of the
> > script.
> > > >>>
> > > >>>     Also remove done from the end of the script since you have no
> > > >>>     corresponding do.
> > > >>>
> > > >>>
> > > >>>
> > > >>>     Sent from my device.
> > > >>>     ---- Original message ----
> > > >>>     From: Anthony Martin <anthony.j.martin142@gmail.com
> > > >>>     <mailto:anthony.j.martin142@gmail.com>>
> > > >>>     Sent: 08/24/2018 12:12:24
> > > >>>     To: Philadelphia Linux User's Group Discussion List
> > > >>>     <plug@lists.phillylinux.org <mailto:plug@lists.phillylinux.org>>
> > > >>>     Subject: Re: [PLUG] shell scripting help
> > > >>>
> > > >>>     Have you tried setting it so you give the file name as an
> > argument
> > > >>>     when you run the script? ./Script FILENAME
> > > >>>
> > > >>>     Anthony Martin
> > > >>>
> > > >>>     Linux System Administrator
> > > >>>
> > > >>>
> > > >>>
> > > >>>     On Fri, Aug 24, 2018 at 12:04 PM Michael Lazin <
> > microlaser@gmail.com
> > > >>>     <mailto:microlaser@gmail.com>> wrote:
> > > >>>
> > > >>>         I am trying to write a shell script to automate the
> > formatting
> > > >>>         of a text file in a certain way that is useful to me.  the
> > > >>>         complicated egrep while not ideal does the job when run
> > alone,
> > > >>>         where $i is the name of the file I want to grep, but when I
> > try
> > > >>>         put it together in an easy to run script it doesn't do
> > > >>>         anything.  Can someone please point me in the right
> > direction?
> > > >>>        Thank you.
> > > >>>
> > > >>>         #!/bin/bash
> > > >>>         echo "What is the filename you want to grep?";
> > > >>>         read $i;
> > > >>>         OUTPUT="$(egrep '\b[A-Z]+| [0-9:]+ \b' $i | grep -v anaged |
> > > >>>         grep -v No| sort -u | grep -v Na | grep -v Ser | grep -v Ty |
> > > >>>         grep -v Contact)";
> > > >>>         echo "${OUTPUT}";
> > > >>>         done
> > > >>>
> > > >>
> > > >>
> > > >> Later,
> > > >> JP
> > > >> --
> > -------------------------------------------------------------------
> > > >> JP Vossen, CISSP | http://www.jpsdomain.org/ |
> > http://bashcookbook.com/
> > > >>
> > > >>
> > > >>
> > ___________________________________________________________________________
> > > >> Philadelphia Linux Users Group         --
> > > >> http://www.phillylinux.org
> > > >> Announcements -
> > > >> http://lists.phillylinux.org/mailman/listinfo/plug-announce
> > > >> General Discussion  --
> > > >> http://lists.phillylinux.org/mailman/listinfo/plug
> > > >>
> > > >
> > > >
> > > >
> > > > --
> > > > Michael Lazin
> > > >
> > > > to gar auto estin noein te kai ennai
> > > >
> > ___________________________________________________________________________
> > > > Philadelphia Linux Users Group         --
> > > > http://www.phillylinux.org
> > > > Announcements -
> > > > http://lists.phillylinux.org/mailman/listinfo/plug-announce
> > > > General Discussion  --
> > > > http://lists.phillylinux.org/mailman/listinfo/plug
> > > >
> >
> > >
> > ___________________________________________________________________________
> > > Philadelphia Linux Users Group         --
> > http://www.phillylinux.org
> > > Announcements -
> > http://lists.phillylinux.org/mailman/listinfo/plug-announce
> > > General Discussion  --
> > http://lists.phillylinux.org/mailman/listinfo/plug
> >
> > ___________________________________________________________________________
> > Philadelphia Linux Users Group         --
> > http://www.phillylinux.org
> > Announcements -
> > http://lists.phillylinux.org/mailman/listinfo/plug-announce
> > General Discussion  --
> > http://lists.phillylinux.org/mailman/listinfo/plug
> >

> ___________________________________________________________________________
> Philadelphia Linux Users Group         --        http://www.phillylinux.org
> Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
> General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug

Attachment: signature.asc
Description: PGP signature

___________________________________________________________________________
Philadelphia Linux Users Group         --        http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug