Thread View: gnu.bash.bug
1 messages
1 total messages
Started by Chet Ramey
Sat, 05 Aug 1989 01:39
Bash function to do ksh `whence'
Author: Chet Ramey
Date: Sat, 05 Aug 1989 01:39
Date: Sat, 05 Aug 1989 01:39
172 lines
4316 bytes
4316 bytes
The following shar file contains two versions of the Korn Shell command
`whence'. The first (whence) is a strict implementation; the second
(whence2) does a little less checking. Send opinions to me.
Chet Ramey "We are preparing to think about contemplating
Network Services Group, CWRU preliminary work on plans to develop a
chet@cwjcc.INS.CWRU.Edu schedule for producing the 10th Edition of
the Unix Programmers Manual." -- Andrew Hume
#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting test in a file
# 3. Execute the file with /bin/sh (not csh) to create the files:
#
# whence
# whence2
#
# Created by chet on Fri Aug 4 21:36:23 EDT 1989
#
if test -f 'whence'
then
echo shar: will not over-write existing file "'whence'"
else
echo extracting "'whence'"
sed 's/^X//' >whence <<'SHAR_EOF'
X#
X# An almost-ksh compatible `whence' command. This is as hairy as it is
X# because of the desire to exactly mimic ksh.
X#
X# This depends somewhat on knowing the format of the output of the bash
X# `builtin type' command.
X#
X# Chet Ramey
X# chet@ins.CWRU.Edu
X#
X
X
Xwhence()
X{
X local vflag
X local path
X
X vflag=
X path=
X if [ "$#" = "0" ] ; then
X echo "whence: argument expected"
X return 1
X fi
X case "$1" in
X -v) vflag=1
X shift 1
X ;;
X -*) echo "whence: bad option: $1"
X return 1
X ;;
X *) ;;
X esac
X
X if [ "$#" = "0" ] ; then
X echo "whence: bad argument count"
X return 1
X fi
X
X for cmd
X do
X if [ "$vflag" ] ; then
X echo $(builtin type $cmd | sed 1q)
X else
X path=$(builtin type -path $cmd)
X if [ "$path" ] ; then
X echo $path
X else
X case "$cmd" in
X /*) echo ""
X ;;
X *) case "$(builtin type -type $cmd)" in
X "") echo ""
X ;;
X *) echo "$cmd"
X ;;
X esac
X ;;
X esac
X fi
X fi
X done
X return 0
X}
SHAR_EOF
if test 985 -ne "`wc -c < 'whence'`"
then
echo shar: error transmitting "'whence'" '(should have been 985 characters)'
fi
fi
if test -f 'whence2'
then
echo shar: will not over-write existing file "'whence2'"
else
echo extracting "'whence2'"
sed 's/^X//' >whence2 <<'SHAR_EOF'
X#
X# An almost-ksh compatible `whence' command. The one difference between this
X# and the real ksh `whence' is that this version, when the "-v" flag is not
X# given and presented with something that is not in the path, simply echos it
X# without more checking to see if it is a function, builtin, or alias.
X#
X# Chet Ramey
X# chet@ins.CWRU.Edu
X#
X
X
Xwhence()
X{
X local vflag
X local path
X
X vflag=
X path=
X if [ $# = "0" ] ; then
X echo "whence: argument expected"
X return 1
X fi
X case "$1" in
X -v) vflag=1
X shift 1
X ;;
X -*) echo "whence: bad option: $1"
X return 1
X ;;
X *) ;;
X esac
X
X if [ $# = "0" ] ; then
X echo "whence: bad argument count"
X return 1
X fi
X
X for cmd
X do
X if [ "$vflag" ] ; then
X echo $(builtin type $cmd | sed 1q)
X else
X path=$(builtin type -path $cmd)
X if [ "$path" ] ; then
X echo $path
X else
X case "$cmd" in
X /*) echo ""
X ;;
X *) echo "$cmd"
X ;;
X esac
X fi
X fi
X done
X return 0
X}
SHAR_EOF
if test 957 -ne "`wc -c < 'whence2'`"
then
echo shar: error transmitting "'whence2'" '(should have been 957 characters)'
fi
fi
# end of shell archive
exit 0
--
Chet Ramey "We are preparing to think about contemplating
Network Services Group, CWRU preliminary work on plans to develop a
chet@cwjcc.INS.CWRU.Edu schedule for producing the 10th Edition of
the Unix Programmers Manual." -- Andrew Hume
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads