mirror of
https://github.com/A2osX/A2osX.git
synced 2024-09-10 07:54:37 +00:00
78 lines
1.2 KiB
Plaintext
78 lines
1.2 KiB
Plaintext
|
NEW
|
|||
|
PREFIX
|
|||
|
AUTO 4,1
|
|||
|
#!/bin/sh
|
|||
|
#
|
|||
|
# which
|
|||
|
#
|
|||
|
# locates a program in path
|
|||
|
#
|
|||
|
|
|||
|
set -E
|
|||
|
|
|||
|
if [ -z $1 ]
|
|||
|
echo "USAGE: which program ..."
|
|||
|
exit 120
|
|||
|
fi
|
|||
|
|
|||
|
set T = "${TEMP}which$$.tmp"
|
|||
|
set A = 0
|
|||
|
set F = 0
|
|||
|
set S = 0
|
|||
|
set L = 1
|
|||
|
|
|||
|
# get options
|
|||
|
while [ ${L} -eq 1 ]
|
|||
|
if [ $1 = "-a" ] or [ $1 = "-A" ]
|
|||
|
set A = 1
|
|||
|
shift
|
|||
|
else
|
|||
|
if [ $1 = "-s" ] or [ $1 = "-S" ]
|
|||
|
set S = 1
|
|||
|
shift
|
|||
|
else
|
|||
|
set L = 0
|
|||
|
fi
|
|||
|
fi
|
|||
|
loop
|
|||
|
|
|||
|
# split dirs in path
|
|||
|
echo ${PATH} > ${T}
|
|||
|
set L = `sed "s/:/ /" ${T}`
|
|||
|
rm -q -c ${T}*
|
|||
|
|
|||
|
# find instances
|
|||
|
while [ $# -gt 0 ]
|
|||
|
set F = ${F} + 1
|
|||
|
for D in ${L}
|
|||
|
# check for file
|
|||
|
if [ ${S} -eq 0 ]
|
|||
|
ls -f ${D}$1
|
|||
|
set T = $?
|
|||
|
else
|
|||
|
ls -f ${D}$1 > /dev/null
|
|||
|
set T = $?
|
|||
|
fi
|
|||
|
|
|||
|
# process result
|
|||
|
if [ ${T} -eq 0 ]
|
|||
|
set F = ${F} - 1
|
|||
|
if [ ${A} -eq 0 ]
|
|||
|
break
|
|||
|
fi
|
|||
|
fi
|
|||
|
next
|
|||
|
shift
|
|||
|
loop
|
|||
|
|
|||
|
# -s numeric result
|
|||
|
if [ ${S} -gt 0 ]
|
|||
|
if [ ${F} -eq 0 ]
|
|||
|
exit 0
|
|||
|
else
|
|||
|
exit 70
|
|||
|
fi
|
|||
|
|
|||
|
MAN
|
|||
|
TEXT /BIN/which
|