如何区分用于获取文档的命令,实用程序或内置函数?


9

我正在运行Bash脚本,但是有时我会感到困惑,我使用的哪些命令属于谁。有时man xxx有效,有时无效,因此我使用--helpinfo,其中大部分是用来显示命令说明的。谁能告诉我我怎么知道什么命令属于什么?内置Bash,GNU实用程序等

Answers:


6

您可以使用以下信息type

$ type echo
echo is a shell builtin
$ type sudo
sudo is /usr/bin/sudo

对于bash内置函数,请使用help,如中所述help echo


3

为了提高效率,其中包含一些内置命令,它们首先作为外部命令存在。例如:

$ type -a echo
echo is a shell builtin
echo is /bin/echo

$ type -a printf
printf is a shell builtin
printf is /usr/bin/printf

Unix和Linux中可以找到对内建函数和外部命令的详细分析。


就获得双重内置/外部命令的帮助而言,echo您有两种选择。一种方法是使用man echo

ECHO(1)                               User Commands                               ECHO(1)

NAME
       echo - display a line of text

SYNOPSIS
       echo [SHORT-OPTION]... [STRING]...
       echo LONG-OPTION

DESCRIPTION
       Echo the STRING(s) to standard output.

       -n     do not output the trailing newline

       -e     enable interpretation of backslash escapes

       -E     disable interpretation of backslash escapes (default)

       --help display this help and exit

       --version
              output version information and exit

       If -e is in effect, the following sequences are recognized:

       \\     backslash

       \a     alert (BEL)

 Manual page echo(1) line 1 (press h for help or q to quit)

您可以输入:

$ help echo
echo: echo [-neE] [arg ...]
    Write arguments to the standard output.

    Display the ARGs, separated by a single space character and followed by a
    newline, on the standard output.

    Options:
      -n    do not append a newline
      -e    enable interpretation of the following backslash escapes
      -E    explicitly suppress interpretation of backslash escapes

    `echo' interprets the following backslash-escaped characters:
      \a    alert (bell)
      \b    backspace
      \c    suppress further output
      \e    escape character
      \E    escape character
      \f    form feed
      \n    new line
      \r    carriage return
      \t    horizontal tab
      \v    vertical tab
      \\    backslash
      \0nnn the character whose ASCII code is NNN (octal).  NNN can be
        0 to 3 octal digits
      \xHH  the eight-bit character whose value is HH (hexadecimal).  HH
        can be one or two hex digits

    Exit Status:
    Returns success unless a write error occurs.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.