我正在学习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)
如何从命令行检查它们?
答案 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
。