sh: Use PATH= assignment in type.

Example:
  PATH=/var/empty; PATH=/bin type ls
This commit is contained in:
Jilles Tjoelker 2009-12-31 17:44:24 +00:00
parent 06a8a57f82
commit 0fb60646df
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=201344
2 changed files with 27 additions and 1 deletions

View File

@ -838,5 +838,5 @@ typecmd_impl(int argc, char **argv, int cmd, const char *path)
int
typecmd(int argc, char **argv)
{
return typecmd_impl(argc, argv, TYPECMD_TYPE, pathval());
return typecmd_impl(argc, argv, TYPECMD_TYPE, bltinlookup("PATH", 1));
}

View File

@ -0,0 +1,26 @@
# $FreeBSD$
failures=0
check() {
if ! eval "$*"; then
echo "Failed: $*"
: $((failures += 1))
fi
}
check 'PATH=/libexec type ld-elf.so.1 >/dev/null'
check '! PATH=/libexec type ls 2>/dev/null'
PATH=/libexec:$PATH
check 'type ld-elf.so.1 >/dev/null'
PATH=/libexec
check 'type ld-elf.so.1 >/dev/null'
check '! type ls 2>/dev/null'
check 'PATH=/bin type ls >/dev/null'
check '! PATH=/bin type ld-elf.so.1 2>/dev/null'
exit $((failures > 0))