summaryrefslogtreecommitdiffstats
path: root/scratch/bash-3.1-postpatch/examples/functions/whatis
diff options
context:
space:
mode:
authorPete Travis <immanetize@fedoraproject.org>2014-10-01 11:33:51 -0600
committerPete Travis <immanetize@fedoraproject.org>2014-10-01 11:33:51 -0600
commit3f6c1435a4cbdf73a65639b05898a01c0dfc21ac (patch)
treec29f3db44b106fc8b145656cd0238341551b22c0 /scratch/bash-3.1-postpatch/examples/functions/whatis
parent46c50fce0354d81d347a8055314a688fc8aa9f52 (diff)
downloadrpmbuild-3f6c1435a4cbdf73a65639b05898a01c0dfc21ac.tar.gz
rpmbuild-3f6c1435a4cbdf73a65639b05898a01c0dfc21ac.tar.xz
rpmbuild-3f6c1435a4cbdf73a65639b05898a01c0dfc21ac.zip
we might need this sles10 stuff latersles10-bash
Diffstat (limited to 'scratch/bash-3.1-postpatch/examples/functions/whatis')
-rw-r--r--scratch/bash-3.1-postpatch/examples/functions/whatis52
1 files changed, 52 insertions, 0 deletions
diff --git a/scratch/bash-3.1-postpatch/examples/functions/whatis b/scratch/bash-3.1-postpatch/examples/functions/whatis
new file mode 100644
index 0000000..56c5a58
--- /dev/null
+++ b/scratch/bash-3.1-postpatch/examples/functions/whatis
@@ -0,0 +1,52 @@
+#
+# whatis -- and implementation of the 10th Edition Unix sh builtin `whatis'
+# command.
+#
+# usage: whatis arg [...]
+#
+# For each argument, whatis prints the associated value as a parameter,
+# builtin, function, alias, or executable file as appropriate. In each
+# case, the value is printed in a form which would yield the same value
+# if typed as input to the shell itself.
+#
+
+whatis()
+{
+ local wusage='usage: whatis arg [arg...]'
+ local fail=0
+
+ if [ $# -eq 0 ] ; then
+ echo "$wusage"
+ return 1
+ fi
+
+ for arg
+ do
+ case $(builtin type -type $arg 2>/dev/null) in
+ "alias")
+ builtin alias "$arg"
+ ;;
+ "function")
+ builtin type "$arg" | sed 1d
+ ;;
+ "builtin")
+ echo builtin "$arg"
+ ;;
+ "file")
+ builtin type -path "$arg"
+ ;;
+ *)
+ # OK, we could have a variable, or we could have nada
+ if [ "$(eval echo \${$arg+set})" = "set" ] ; then
+ # It is a variable, and it is set
+ echo -n "$arg="
+ eval echo '\"'\$$arg'\"'
+ else
+ echo whatis: $arg: not found
+ fail=1
+ fi
+ ;;
+ esac
+ done
+ return $fail
+}