[GTALUG] Hashbang syntax in bash script [was: Watching a network folder: is there a smart way of doing this?\

William Park opengeometry at yahoo.ca
Wed Mar 1 05:41:56 EST 2017


If you know /bin/bash is the right location, then use /bin/bash.  If
not, let 'env' find it.
-- 
William

On Wed, Mar 01, 2017 at 04:09:11AM -0500, Bob Jonkman via talk wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Hi Scott: Why do this:
> 
> #!/usr/bin/env bash
> 
> and not the usual
> 
> #! /bin/bash
> 
> ???
> 
> - --Bob.
> 
> 
> On 2017-02-24 11:21 PM, Scott Elcomb via talk wrote:
> > On Fri, Feb 24, 2017 at 9:24 PM, Stewart C. Russell via talk 
> > <talk at gtalug.org> wrote:
> >> On 2017-02-20 12:47 AM, Aruna Hewapathirane wrote:
> >>> 
> >>> Hi Stewart, you could just |watch| the file listing (adjusting
> >>> n seconds to whatever is suitable)
> >>> 
> >>> |watch --differences -n 10 ls -l </path/to/shared/dir>|
> >> 
> >> I hadn't heard of watch before, so thanks! watch *started* to
> >> work really well, but then went into a terminal sulk after the FS
> >> disappeared during a scan, and refused to show any updates. It's
> >> also an interactive program, so doesn't pipe or notify changes in
> >> any useful way.
> >> 
> >> I suspect I'll just have to go with William Park's suggestion of
> >> using rsync to a local folder that I have more control over. I
> >> still have to correct for the scanner FS's wandering clock, but
> >> that's less important.
> > 
> > Here's a quick and dirty bash script similar to the watch command; 
> > adjust to taste. :-)
> > 
> > [- watchdir.sh snippet starts -]
> > 
> > #!/usr/bin/env bash # # USAGE # watchdir.sh <rate> <path> #
> > 
> > 
> > # Determine our sampling rate WATCHRATE=${1}
> > 
> > if [[ "" = "${WATCHRATE}" ]]; then WATCHRATE=10 fi
> > 
> > # Determine our watch directory WATCHDIR=${2}
> > 
> > if [[ "" = "${WATCHDIR}" ]]; then WATCHDIR="." fi
> > 
> > # Describe what we're doing echo "Watching ${WATCHDIR} every
> > ${WATCHRATE}s:"
> > 
> > # Render a side-by-side comparison with last snapshot of our
> > directory # note: assumes at least one snapshot already exists 
> > function sample_watchdir { cp .current .previous date > .current ls
> > -l ${WATCHDIR} >> .current echo "" diff -y .current .previous }
> > 
> > # Begin watching date > .current ls -l ${WATCHDIR} >> .current 
> > sample_watchdir
> > 
> > # Every WATCHRATE seconds, make the current file listing our
> > previous #   listing, take a fresh look at WATCHDIR and compare the
> > changes while sleep ${WATCHRATE}; do sample_watchdir done
> > 
> > [- watchdir.sh snippet ends -]
> > 
> 
> - -- 
> 
> 
> - --
> Bob Jonkman <bjonkman at sobac.com>          Phone: +1-519-635-9413
> SOBAC Microcomputer Services             http://sobac.com/sobac/
> Software   ---   Office & Business Automation   ---   Consulting
> GnuPG Fngrprnt:04F7 742B 8F54 C40A E115 26C2 B912 89B0 D2CC E5EA
> 
> 
> 
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2
> Comment: Ensure confidentiality, authenticity, non-repudiability
> 
> iEYEARECAAYFAli2j7UACgkQuRKJsNLM5eobKQCfUCOoqN2ncebZcc7mBA2BIYl1
> pXIAoI4Ce2/FSphaU28ADlvybH1rbyQE
> =MXyH
> -----END PGP SIGNATURE-----
> ---
> Talk Mailing List
> talk at gtalug.org
> https://gtalug.org/mailman/listinfo/talk


More information about the talk mailing list