scripting

Bennett Todd bet at rahul.net
Tue Jul 13 10:33:05 PDT 2004


One basic issue to consider, is choice of tools.

If you care to, you can simplify scripts by using platform-specific
aids like seq.

I, for one, tend to reach for perl when [relatively]
platform-independent tools don't suit, as I and the folks I work
with consistently provide that on all platforms we work on.

When the performance cost of doing so isn't too painful, I'll
generally reach for expr(1), since it's always there. If I want a
counted loop, and prefer to code it out rather than enumerating the
results, I'll use

	i=1
	while test $i -le 4;do
		echo file.$i
		i=`expr $i + 1`
	done

which brings up another choice-of-tools issue; some folk like to
try, as a habit, to write scripts in the subset dialect that is
pretty portable across platforms and across sh/bash/ksh/ash/....

Another thing I find myself doing a lot is replacing shell loops
with invocations of xargs, sometimes xargs -l. I also use perl a lot
from the cmdline. So if I wanted to do

	mv "file 1" file.1
	mv "file 2" file.2
		...
	mv "file 20" file.20

I'd probably go

	perl -e 'rename "file $_","file.$_" for 1..20'

or perhaps

	ls file*|perl -e 'rename $_,"file.$1" if / (\d+)$/'

-Bennett
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.linuxfromscratch.org/pipermail/lfs-chat/attachments/20040713/66cf6fa4/attachment.sig>


More information about the lfs-chat mailing list