命令行上的`read`参考选项

时间:2018-04-05 12:08:01

标签: bash

我正在学习read命令,
有多种选项,包括-p-e-i
例如:

    if read -t 10 -sp "Enter secret passphrase > " secret_pass; then
        echo -e  "\nSecret passphrase = 'secret_pass'"
    else
        echo -e  "\nInput timed out" >&2
        exit 1
    fi

但是,我找不到命令行

中的选项
    $ man read | grep -e '-e' -e '-p'
    #it return nothing.

此外,我检查了BSD官方,但未能找到选项。 read(2)

如何从命令行检查它们?

2 个答案:

答案 0 :(得分:3)

命令read是内置的shell。您可以查看Bash

的手册
man bash

并搜索read或您可以输入

help read

Bash shell中。

<强>更新

您在评论中的跟进问题:

Bash将首先使用其内置函数。如果您的系统上还有一个可执行文件,而您又想要使用它,则必须按其完整路径调用它,例如,

$ echo Hello # This calls Bash's version of echo
$ /usr/bin/echo World # This calls echo that was installed with the OS

这适用于在系统上以可执行文件存在的所有命令,并且还具有内置对应项。我不熟悉BSD,但在Linux上没有cd可执行文件。这意味着程序可以从外部更改Bash的工作目录。我不知道为什么BSD有这样的程序,如果Bash甚至允许它改变它的工作目录。

答案 1 :(得分:1)

  

如何从命令行检查它们?

对于航海的建议help read,这是最简单的,前提是您的命令行shell为bash,或bash -c 'help read',以防您的命令行shell为其他一种贝壳。

如果您想阅读手册部分而不是help文字,可以使用:

man bash | more +/'read *\['
  

man cd显示了其内置的BSD,help cd显示了它内置的GNU bash,版本4.4.19(1)。当我cd dir在命令行中时,其内置是工作

执行使用的shell的内置命令。如果不确定它是哪个shell,请输入echo $0