diff --git a/doc_src/type.txt b/doc_src/type.txt
index 25bac5289..8945102ca 100644
--- a/doc_src/type.txt
+++ b/doc_src/type.txt
@@ -12,9 +12,10 @@ The following options are available:
- \c -h or \c --help prints help and then exits.
- \c -a or \c --all prints all of possible definitions of the specified names.
- \c -f or \c --no-functions suppresses function and builtin lookup.
-- \c -t or \c --type prints keyword, function, builtin, or file if \c NAME is a shell reserved word, function, builtin, or disk file, respectively.
+- \c -t or \c --type prints function, builtin, or file if \c NAME is a shell function, builtin, or disk file, respectively.
- \c -p or \c --path returns the name of the disk file that would be executed, or nothing if 'type -t name' would not return 'file'.
- \c -P or \c --force-path returns the name of the disk file that would be executed, or nothing if no file with the specified name could be found in the $PATH.
+- \c -q or \c --quiet suppresses all output; this is useful when testing the exit status.
\c type sets the exit status to 0 if the specified command was found,
and 1 if it could not be found.
diff --git a/share/functions/type.fish b/share/functions/type.fish
index 9cadcabc3..c54997dd2 100644
--- a/share/functions/type.fish
+++ b/share/functions/type.fish
@@ -13,13 +13,19 @@ function type --description "Print the type of a command"
for i in (seq (count $argv))
switch $argv[$i]
case -t --type
- set mode type
+ if test $mode != quiet
+ set mode type
+ end
case -p --path
- set mode path
+ if test $mode != quiet
+ set mode path
+ end
case -P --force-path
- set mode path
+ if test $mode != quiet
+ set mode path
+ end
set selection files
case -a --all
@@ -28,6 +34,9 @@ function type --description "Print the type of a command"
case -f --no-functions
set selection files
+ case -q --quiet
+ set mode quiet
+
case -h --help
__fish_print_help type
return 0
@@ -61,10 +70,6 @@ function type --description "Print the type of a command"
case type
echo (_ 'function')
-
- case path
- echo
-
end
if test $multi != yes
continue
@@ -81,9 +86,6 @@ function type --description "Print the type of a command"
case type
echo (_ 'builtin')
-
- case path
- echo
end
if test $multi != yes
continue
@@ -116,7 +118,7 @@ function type --description "Print the type of a command"
end
end
- if test $found = 0
+ if begin; test $found = 0; and test $mode != quiet; end
printf (_ "%s: Could not find '%s'\n") type $i >&2
end