Hello,
I often stumble over a common shell coding practise.
Example 1:
Code:
#!/bin/sh
#
# Licensed Materials - Property of IBM
# Rational ClearCase
# (C) Copyright IBM Corp. 1999, 2010. All Rights Reserved
# US Government Users Restricted Rights -
# Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp
#
# Start/Stop ClearCase daemons as well as
# mount or umount MVFS file systems.
#
...
INSMOD="/sbin/insmod -f"
MODPROBE="/sbin/modprobe"
RMMOD=/sbin/rmmod
LSMOD=/sbin/lsmod
PIDOF=/sbin/pidof
ECHO="/bin/echo -e "
NAWK=/bin/awk
GREP=/bin/grep
RM=/bin/rm
PS=/bin/ps
CP=/bin/cp
LN=/bin/ln
MKDIR=/bin/mkdir
EXPR=/usr/bin/expr
...
Example 2:
Code:
#!/bin/ksh
# OPC_WHAT_STRING="@(#)HP Operations Smart Plug-in for Databases 11.40.000 (10/22/08)"
########################################################################
#
# File: spi_migrate.sh
# Description: determines the DCE / HTTPS agent environment and starts
# migration of all available SPIs
# Language: Bourne Shell
# Package: -none-
#
# (c) Copyright 2004 Hewlett-Packard Development Company, L.P.
#
########################################################################
# set -x
ECHO=echo
CAT=cat
MYSYS=`uname -s`
if [ $MYSYS = "HP-UX" ] ; then
GREP=/usr/bin/grep
AWK=/usr/bin/awk
SED=/usr/bin/sed
DIFF=/usr/bin/diff
elif [ $MYSYS = "SunOS" ] ; then
GREP=/usr/xpg4/bin/grep
AWK=/usr/xpg4/bin/awk
SED=/usr/xpg4/bin/sed
DIFF=diff
elif [ $MYSYS = "AIX" ] ; then
GREP=/usr/bin/grep
AWK=/usr/bin/awk
SED=/usr/bin/sed
DIFF=/usr/bin/diff
elif [ $MYSYS = "OSF" ] ; then
GREP=/usr/bin/grep
AWK=/usr/bin/awk
SED=/usr/bin/sed
DIFF=/usr/bin/diff
elif [ $MYSYS = "Linux" ] ; then
GREP=grep
AWK=awk
DIFF=diff
ECHO='echo -e'
...
Example3:
Code:
#! /bin/sh
#
# Log file pattern detector plugin for Nagios
# Written by Ethan Galstad (nagios@nagios.org)
# Last Modified: 07-31-1999
#
...
# Paths to commands used in this script. These
# may have to be modified to match your system setup.
# TV: removed PATH restriction. Need to think more about what this means overall
#PATH=""
ECHO="/bin/echo"
GREP="/bin/egrep"
DIFF="/usr/bin/diff"
TAIL="/usr/bin/tail"
CAT="/bin/cat"
RM="/bin/rm"
CHMOD="/bin/chmod"
TOUCH="/bin/touch"
Do you see what is in common?
Always define all commands with its platform-dependent path and store it in UPPERCASE variables.
Sometimes I even see a for loop that finds out where a command lives and stores the result - in an UPPERCASE variable.
Always UPPERCASE!
And later in the scripts there is of course
Code:
$ECHO ... | $GREP ... | $AWK ... | $WC ...
instead of
Code:
echo ... | grep ... | awk ... | wc ...
My Questions:
1. have you met that, too?
2. Is there a book or a University that teaches this?
I need a unix script that check for even or odd. EXAMPLE::::
please enter the number to check: 12
the output: This is an even number
it has to have prompts. (2 Replies)
Hey Guys,,
Have just got started with Unix , I need UNIX Terminal to practise commands.
Does any website host such services ?
Happy Holidays... (9 Replies)
Hello, I have been working on a what I thought was a fairly simple script for installing a software kit on Linux and Unix
I am not new to scripting but am far from being fluent in sh scripting.
any assistance would be appreciated.
I have an odd bug occuring when executing the script.
When... (2 Replies)
Question is title, I don't understand why all examples I am reading return constants error values instead of just exiting under certain conditions... then back in main script test return value and exit if true, to me seems like a lot of extra typing and test conditions which can make for bulky and... (5 Replies)
Is it normal behavior for a shell script that terminates to terminate its parent shell when executed with the "." option?
For example, if I have the example script (we'll name it ex.sh):
#!/bin/sh
if
then
echo "Bye."
exit 2
fi
And I execute it like this:
>./ex.sh
It... (6 Replies)
The code I am using
#!/bin/sh
for FILE in *.cfg; do
awk '{
print;
if ($1 == "host_name") store_name = $2;
if ($1 == "register") { printf("\t\t parents\t\t\t %s-ilo\n", store_name); }
}' "$FILE" > ../new-files/hosts/$FILE
sed -i -e "s/notification_options.*/notification_options... (0 Replies)
I am creating a startup script for an application. This application's startup script is in bash. It will also need to call a perl script (which I will not be able to modify) for the application environment prior to calling the application. The problem is that this perl script creates a new shell... (5 Replies)
Hi folks,
So I wrote a script to run "top", "awk" out values fro the "top" and send the results to a data file.
I then set it to run in cron every 15 minutes.
Now I'm noticing that the script, and it's sub-commands are not always cleanly finishing and, in my investigations, I am also... (11 Replies)
Hi there. I've been forced by circumstance to write an expect script to handle password updates on a number of servers. There's a mix of Solaris 8, 9, 10, RedHat and Ubuntu. There's no chance the client will allow us to hook them up to a directory, so we have to make do.
This script is mostly... (0 Replies)
Hi all,
I have 2 server A and B. B is acting as standby for A.
The cronjobs running in A must not be run in B until failover.
The activation of cronjobs in B can be manual.
In server A, I am doing the following
1) create a cron/job script that does
"crontab -l >... (5 Replies)