For the people who don't already receive this!! Check out the "TECH TIP: #12 Building a Shell Script Library" I didn't know about the ". SCRIPT.SH" would run a script as if you typed it into the shell. Some thing new to me!! -------- Forwarded Message -------- From: Linux Journal News Notes To: lj-announce@ssc.com Subject: Linux Journal Weekly Newsletter - January 3 Date: Wed, 03 Jan 2007 04:32:00 -0600 Linux Journal Weekly News Notes -- January 3, 2007 Sponsor: Appro A Better Way to Keep your Cool in the Data Center A Better Way to Keep your Cool in the Data Center Providing adequate cooling for data center equipment is increasingly critical for reducing downtime, extending equipment life and optimizing energy use. The combination of Appro's server solutions with Fluent's thermal analysis provides enterprise business customers with reliable and cost-effective high-performance IT infrastructure. Learn More: http://www.appro.com/whitepaper/datacenter%20cooling_white%20paper.asp _________________________________________________________ Happy New Year, Everyone! Welcome to the January 3rd, 2007, edition of Linux Journal Weekly News Notes. Although we're gradually revving back up to business normalcy here, our editors have been posting like mad over the last week. Give these guys some free time and all they can do is think Linux! We're sure you'll enjoy the links to great stories, musings and tech tips. We also hope that this newsletter finds you itching to send us your fascinating contributions, such as tech tips, hidden Linux sightings and cool dot-orgs that are making the Linux Community ever richer. Repeat after me: "My new year's resolution for 2007 is to contribute to Linux Journal very, very, very often! We wish you only good things...and lots of Linux fun and success in 2007 James Gray and The Linux Journal Editorial Team jgray@linuxjournal.com FEATURED LINKS The Ultimate Distro by Glyn Moody http://www.linuxjournal.com/node/1000150 Glyn talks about the alpha release of Ulteo, a new distro from Gael Duval, the chap who created Mandrake in 1998. Ulteo is a self-upgrading, easy-to-use Linux distribution. Glyn's point is to show how dynamic the world of Linux distributions remains today. Can We Relate? by Doc Searls http://www.linuxjournal.com/node/1000153 One of Doc's passions these days is enabling Vendor Relationship Management -- i.e. relating to vendors productively, on mutually agreeable terms rather than just paying them money for whatever they're selling -- and exciting things are happening. Here's a summary of the latest developments and Doc's work with Harvard's Berkman Center for Internet and Society. Formatting Cells in OpenOffice.org Calc by Bruce Byfield http://www.linuxjournal.com/node/1000154 Bruce continues his pragmatic, useful series on OpenOffice.org, this time focusing on formatting your data. Ruby in 2006 -- A Retrospective Collection by Pat Eyler http://www.linuxjournal.com/node/1000155 Pat has compiled a retrospective of Ruby retrospectives for 2006, making totally sure you miss nothing important from the past year. The Buzz About Aldrin by Dave Phillips http://www.linuxjournal.com/node/1000156 For the past month, Dave has been playing with Leonard 'paniq' Ritter's "Aldrin", a music production system that combines a tracker-style composition interface with audio synthesis and processing modules called machines. Here's his report. Directory Services as the Foundation of Organizational Infrastructures by Tom Adelstein http://www.linuxjournal.com/node/1000157 Tom muses about the role of LDAP as a foundation for enterprise-level infrastructures. Happy New Year - What's Ahead? by Tom Adelstein http://www.linuxjournal.com/node/1000158 Here's another post by Tom. This time he's taking an end-of-year, start-of-year perspective, looking at where he's come from and where he wants to take himself in 2007. It's always fascinating to read each other's histories and dreams for new ideas and perspectives. THE BRAIN TRUST: READERS SHARE THEIR EXPERTISE Thanks to everyone for your forthcoming technical tips! Please send more of them to share with our community of readers! My email is jgray@linuxjournal.com. We'll send you a free t-shirt for your efforts. Thanks! FROM THE ARCHIVES LJ Interviews Linus Torvalds (1996) by Phil Hughes and Gena Shurtleff http://www.linuxjournal.com/article/0146 This interview with the father of Linux, Linus Torvalds, occurred in 1996, just after Version 2.0 was released. This is the best kind of trip down memory lane for us Linux geeks, isn't it? LINUX INCOGNITO: THERE'S LINUX INSIDE! Our readers want to hear about your interesting experiences uncovering Linux in an unexpected or innovative situation. Email them to me at jgray@linuxjournal.com. If your contribution is selected for publication, we'll send you a t-shirt! DOT ORG OF THE WEEK Do you know of an organization or person making a unique contribution to the Linux community despite not getting paid for it? If so, we'd like to share information about them with our readers. Send your recommendation, along with why the organization/people are worthy of recognition, to jgray@linuxjournal.com. TECH TIP: #12 Building a Shell Script Library This tip comes courtesy of Linux Journal columnist Dave Taylor and No Starch Press. This is the 10th in a series of Tech Tips on shell scripting from Dave where he explains the "how it works" factor behind the script. Many of the scripts in this chapter have been written as functions rather than as stand-alone scripts so that they can be easily and gracefully incorporated into other scripts without incurring the overhead of making system calls. While there's no #include feature in a shell script, as there is in C, there is a tremendously important capability called sourcing a file that serves the same purpose. To see why this is important, let's consider the alternative. If you invoke a shell script within a shell, by default that script is run within its own subshell. You can immediately prove this experimentally: $ cat tinyscript.sh test=2 $ test=1 $ tinyscript.sh $ echo $test 1 Because this script changed the value of the variable test within the subshell running the script, the value of the existing test variable in the current shell's environment was not affected. If you instead use the "." source notation to run the script, it is handled as though each command in the script was typed directly into the current shell: $ . tinyscript.sh $ echo $test 2 As you might expect, if you have an exit 0 command within a script that's sourced, for example, it will exit that shell and log out of that window. The Code To turn the functions in this chapter into a library for use in other scripts, extract all the functions and concatenate them into one big file. If we call this file library.sh , a test script that accesses all of the functions might look like this: #!/bin/sh # Library test script . library.sh initializeANSI echon "First off, do you have echo in your path? (1=yes, 2=no) " read answer while ! validint $answer 1 2 ; do echon "${boldon}Try again${boldoff}. Do you have echo " echon "in your path? (1=yes, 2=no) " read answer done if ! checkForCmdInPath "echo" ; then echo "Nope, can't find the echo command." else echo "The echo command is in the PATH." fi echo "" echon "Enter a year you think might be a leap year: " read year while ! validint $year 1 9999 ; do echon "Please enter a year in the ${boldon}correct${boldoff} format: " read year done if isLeapYear $year ; then echo "${greenf}You're right! $year was a leap year.${reset}" else echo "${redf}Nope, that's not a leap year.${reset}" fi exit 0 Notice that the library is incorporated, and all functions are read and included in the run-time environment of the script, with the single line . library.sh This is a useful approach in working with the many scripts in this book, and one that can be exploited again and again as needed. Running the Script To run the test script given in the previous section, simply invoke it at the command line. The Results $ library-test First off, do you have echo in your path? (1=yes, 2=no) 1 The echo command is in the PATH. Enter a year you think might be a leap year: 432423 Your value is too big: largest acceptable value is 9999 Please enter a year in the correct format: 432 You're right! 432 was a leap year. On your computer screen, the error messages just shown will be a bit more blunt because their words will be in bold, and the correct guess of a leap year will be displayed in green. Excerpted with permission from the book Wicked Cool Shell Scripts: 101 Scripts for Linux, Mac OS X, and UNIX Systems by Dave Taylor. Published by No Starch Press. http://www.nostarch.com/wcss.htm. Dave Taylor is a long-time Unix and Linux geek and runs the popular http://www.AskDaveTaylor.com/ tech support blog. His book Wicked Cool Shell Scripts can be found at: http://www.intuitive.com/wicked/ and the entire library of scripts at: http://www.intuitive.com/wicked/wicked-cool-shell-script-library.shtml. FEATURED EVENTS The Southern California Linux Expo (Feb 10-11, 2007) "We are bringing businesses, academic institutions and the Linux community together in a way that no other conference does!" http://www.socallinuxexpo.org Join us February 14-15, 2007 for LinuxWorld OpenSolutions Summit A new conference from the producers of LinuxWorld. OpenSolutions Summit will feature two days of peer-to-peer case studies, technical training, and insightful keynotes that will provide best practices and the latest innovations across the enterprise. http://www.linuxworldsummit.com/ ____________________________________________________ To remove yourself from this list, see http://www.ssc.com/mailing-lists. ____________________________________________________ --------------------------------------------------- PLUG-discuss mailing list - PLUG-discuss@lists.plug.phoenix.az.us To subscribe, unsubscribe, or to change you mail settings: http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss