Sponsored Content
Top Forums Shell Programming and Scripting Tip: template for a safe and portable script Post 303032522 by MadeInGermany on Tuesday 19th of March 2019 02:47:02 PM
Old 03-19-2019
Tip: template for a safe and portable script

In an attempt to finally end this article I start this new thread.
Here is a template for a safe and portable script.
Code:
#!/bin/bash
# /bin/bash exists on most still supported Unixes
#
# tr and date behave better with
if [ -n "$LC_ALL" ]; then export LC_ALL=C; else export LANG=C; fi
#
# Unix optional packages install in
opt_path=/usr/local/bin
solaris_opt_path=/usr/sfw/bin:/opt/csw/bin
#
# set PATH so no PATH is inherited, export it to all children
# Solaris is Posix-compliant in /usr/xpg4/bin and BSD-compliant in /usr/ucb
export PATH=/usr/xpg4/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/ucb:${opt_path}:${solaris_opt_path}
#
# HP-UX is Posix-compliant with
export UNIX95=
#
# GREP_OPTIONS can obscure GNU grep
unset GREP_OPTIONS
#
# LD_* can obscure external commands
unset LD_LIBRARY_PATH LD_PRELOAD
#
# no glob file-matching in command args and word lists (for loop)
set -f
#
# prefer builtin commands and use Posix-compliant options
# check with "shellcheck"

Ok this is my wisdom. Perhaps you want to add something from your wisdom?
 
svscanboot(8)						      System Manager's Manual						     svscanboot(8)

NAME
svscanboot - starts svscan(8) in the /service directory, with output and error messages logged through readproctitle(8). svscanboot is available in daemontools 0.75 and above. SYNOPSIS
svscanboot DESCRIPTION
svscanboot runs the pipeline svscan /service 2>&1 | readproctitle service errors: ..... with 400 dots. The last 400 bytes of error messages from svscan(8) will be visible to ps(1) through readproctitle(8). svscanboot sets $PATH to /command:/usr/local/bin:/usr/local/sbin: /bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin (all in one line, no space) and clears all other environment variables. Program writers are encouraged to use globally allocated names in /command. SEE ALSO
supervise(8), svc(8), svok(8), svstat(8), svscan(8), readproctitle(8), fghack(8), pgrphack(8), multilog(8), tai64n(8), tai64nlocal(8), setuidgid(8), envuidgid(8), envdir(8), softlimit(8), setlock(8), ps(1) http://cr.yp.to/daemontools.html http://cr.yp.to/slashcommand.html svscanboot(8)
All times are GMT -4. The time now is 04:03 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy