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