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

Bob Jonkman bjonkman at sobac.com
Wed Mar 1 04:09:11 EST 2017


-----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-----


More information about the talk mailing list