NewTlug Meetings:2006-02-28

From GTALUG

The Bash Shell and extensions

Date: Feb 28, 2006
Time: 7:00 to 10:00pm

This month's NewTLUG meeting will be held Tues Feb 28th., at the IBM offices 3600 Steeles Ave E.


Speaker: William Park <opengeometry@yahoo.ca>

William Park learned Unix using the original Bourne shell. And, he has come full-circle back to shell. If he's not busy selling Linux thin-clients, he's busy writing patches for Bash shell, giving other scripting languages a run for their money. He uses Vi so much that even his command line is in Vi mode.

He will give short presentation on his Bash extensions,

http://freshmeat.net/projects/bashdiff/

http://home.eol.ca/~parkw/index.html#bashdiff

He will also take questions about Bash shell in general, so newbies are encourage to come out and ask away.

Summary:

BashDiff is a patch against Bash-3.0 shell, incorporating many useful features from Awk, Python, Zsh, Ksh, and others. It implements in the main core

  • new brace expansion {a..b} --- integer/letter generation, positional parameters and array expansion
  • new parameter expansion ${var|...} --- content filtering, list comprehension (like Python), regex/string splitting and joining, Python-like string methods, emulation of associative array lookup, etc.
  • extended case statement --- regex, continuation, then/else sections
  • extended for/while/until loops --- then/else sections, multiple for-loop variables
  • try-block with string exception (like Python)
  • new <<+ here-document --- relative indentation
  • new <<<< here-file

and as dynamically loadable builtins

  • extended read/echo builtins --- DOS lines, CSV format, and Awk emulation
  • sscanf(3), <string.h> and <ctype.h> wrappers, ASCII/string conversion, and binary number conversion.
  • new raise builtin for try-block
  • array cut/splicing, array filter/map/zip/unzip (like Python)
  • HTML template engine (like PHP, JSP, ASP)
  • GDBM, SQLite, PostgreSQL, and MySQL database interface
  • Expat XML parser interface
  • stack/queue operations on arrays and positional parameters
  • x-y character plot
  • Libwebserver (embedded web server) interface
  • GTK+2 interface for simple GUI dialog or layout
  • RPN calculator (like HP calculator)


Location: IBM offices 3600 Steeles Ave East, north side of Steeles at Pharmacy/Esna Park (between Victoria Park and Warden)

http://www.mapquest.com/maps/map.adp?mapdata=nGCyq1371PhhgCmx6Z%2b1cDMK7StVSEOC8pv6WLEwpPl4J5csVKolXMC1br3AveG47eAtFWeuZ%2bwJ2KM5Oq7LBuLnoWwdmj0b8XrxuhJWdRt2Mc4gVOIEVqcICHRlLm6XTuuZzJMzAZAf3OoErhbEoEZ9FStAjnRb7vrPmDxfzc6Dkdp3pAlh6ZFovnxcYwyt1e0eUfOZpFdN4rspAMvur8zk2XOMgoEZ6s2G1gxGZI6fILrLIfssN9UqLRPAuYnV84Fbwn7amW8Y%2fM6NeCfvcJVGtRhNNBCahqzxnGwYk6G9JBDVKNwGC7biOuwnI5nkx95wKeq%2brOPhXzRb4XSHbA%3d%3d (sorry for the wrap)

-- Important -- all attendees will be required to have a security badge. Badges should be prepared in advance. If you plan to attend, please send your name to Paul (off-list at <pmora@ca.ibm.com>) preferably, before Monday Feb 27. ...and please be sure to return badges to the front reception at the end of the session.

Thanks: to Paul for helping NewTLUG not only by arranging for a room and hosting our meetings at IBM but also with looking after the badges.

Badges: please email Paul Mora <pmora@ca.ibm.com> to pre-register

Directions: Meet at the front entrance well before 7:00pm (6:30 recommended) to pickup your ID badge. At about 7:00 we'll be escorted to the auditorium. Some provision will be made for anyone arriving a little late.

Parking: Parking is available in the visitor parkade from 6:00pm to 11:00pm.

Customize