Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.

# Features common to sh, bash and zsh.
# Edrx, 2004


# «.basic-substitutions»	(to "basic-substitutions")
# «.redirections»		(to "redirections")
# «.exit-status»		(to "exit-status")
# «.setting-variables»		(to "setting-variables")

# (find-es "bash")
# (find-es "zsh")





# Write:
# Here-documents, here-strings
# <(), >(); =() is a zshism
# echo12







#####
#
# basic substitutions
# 2004oct16
#
#####

# «basic-substitutions»  (to ".basic-substitutions")
#*
echo hello
echo hello  goodbye
echo hello $(echo hmm) goodbye
echo
echo $[1+2*3]

#*
cd /tmp
echo $PWD
cd
echo $PWD

#*
echo "stuff
  taking
    several
      lines, with
  substitutions: \$PWD becomes $PWD"
echo 'no substitutions: $PWD'

#*





#####
#
# redirections
# 2004oct15
#
#####

# «redirections»  (to ".redirections")
# (find-bashnode "Redirections")
#*
function echo12 () {
  echo $1
  echo $2 1>&2
}
echo12 stdout sterr
echo12 stdout sterr > /dev/null
echo12 stdout sterr > /dev/null 2>&1

#*




#####
#
# program exit status and conditionals
# 2004oct15
#
#####

# «exit-status»  (to ".exit-status")
# (find-man "1 true")
# (find-man "1 false")
# (find-node "(coreutils)true invocation")
# (find-node "(coreutils)false invocation")
# (find-bashnode "Special Parameters" "`?'")
# (find-zshnode "Parameters Set By The Shell" "? <S>")

#*
true;  echo $?
false; echo $?
function foo () { return $1 }
foo 99; echo $?

if true;   then echo y; else echo n; fi
if foo 0;  then echo y; else echo n; fi

if false;  then echo y; else echo n; fi
if foo 1;  then echo y; else echo n; fi
if foo 99; then echo y; else echo n; fi

#*




#####
#
# setting variables
# 2004oct15
#
#####

# «setting-variables»  (to ".setting-variables")
# (find-bashnode "Shell Parameter Expansion" "`${PARAMETER:-WORD}'")
# (find-zshnode  "Parameter Expansion" "${NAME:-WORD}")
#*
VSET=original
VVOID=
unset VUNSET

echo ${VSET:-new}    ;# -> original
echo ${VVOID:-new}   ;# -> new
echo ${VUNSET:-new}  ;# -> new

#*
# (find-bashnode "Shell Parameter Expansion" "`${PARAMETER:=WORD}'")
# (find-zshnode  "Parameter Expansion" "${NAME:=WORD}")





#####
#
# arg0
# 2004oct15
#
#####

#*
rm -Rv   ~/tmp/arg0/
mkdir -p ~/tmp/arg0/
cd       ~/tmp/arg0/
mkdir -p dir1/dir2/

cat > dir1/showarg0 <<'%%%'
#!/bin/sh
echo "$0 -> $(readlink -f $0)"
%%%
chmod 755 dir1/showarg0

ln -s showarg0 dir1/linktosamedir
ln -s dir1/showarg0 linktosubdir
ln -s ../showarg0 dir1/dir2/linktoparentdir

./linktosubdir
dir1/showarg0
dir1/linktosamedir
dir1/dir2/linktoparentdir

(cd dir1
 ../linktosubdir
 ./showarg0
 ./linktosamedir
 dir2/linktoparentdir
)

#*




#  Local Variables:
#  coding:               raw-text-unix
#  ee-delimiter-hash:    "\n#*\n"
#  ee-anchor-format:     "«%s»"
#  End: