Bash 命令行上“read”的参考选项
我正在学习Bash 命令行上“read”的参考选项,bash,Bash,我正在学习阅读命令, 有多个选项,包括-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 但是,我无法从命令行
阅读命令,
有多个选项,包括-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
是一个内置的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
甚至允许它更改其工作目录。命令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
甚至允许它更改其工作目录
如何从命令行检查它们
如果您的命令行shell是bash
,或者bash-c“help read”
,那么使用航海的建议help read
最简单
如果您想阅读手册部分而不是帮助
文本,可以使用:
man bash | more +/'read *\['
man-cd
显示其BSD内置,help-cd
显示其GNU-bash内置,版本4.4.19(1)。当命令行中的Icd-dir
时,谁的内置正在工作
执行所用shell的内置命令。如果不确定它是哪个外壳,请输入echo$0
如何从命令行检查它们
如果您的命令行shell是bash
,或者bash-c“help read”
,那么使用航海的建议help read
最简单
如果您想阅读手册部分而不是帮助
文本,可以使用:
man bash | more +/'read *\['
man-cd
显示其BSD内置,help-cd
显示其GNU-bash内置,版本4.4.19(1)。当命令行中的Icd-dir
时,谁的内置正在工作
执行所用shell的内置命令。如果不确定它是哪个shell,请输入echo$0
read
是一个shell内置项。要获取有关读取和其他内置内容的帮助,请键入help read
或help cd
,等等。您没有在BSD站点上找到正确的read
文档页面。您找到的是关于系统调用的,您对shell命令感兴趣。这是正确的一页,但说明不了多少。您可以在中找到read
的文档(因为它是一个内部bash
命令),或者通过运行manbash
。这是一个很长的文档,请耐心等待。man cd
显示其BSD内置,help cd
显示其GNU bash内置,版本4.4.19(1)。当命令行中的Icd dir
时,谁的内置正在工作@Pawamoyread
是一个内置的shell。要获取有关读取和其他内置内容的帮助,请键入help read
或help cd
,等等。您没有在BSD站点上找到正确的read
文档页面。您找到的是关于系统调用的,您对shell命令感兴趣。这是正确的一页,但说明不了多少。您可以在中找到read
的文档(因为它是一个内部bash
命令),或者通过运行manbash
。这是一个很长的文档,请耐心等待。man cd
显示其BSD内置,help cd
显示其GNU bash内置,版本4.4.19(1)。当命令行中的Icd dir
时,谁的内置正在工作@Pawamoycoull我问man cd
显示它的BSD内置,help cd
显示它的GNU bash内置,版本4.4.19(1)。当我在命令行中输入cd dir
时,谁的内置在工作?@工具我认为BSD内置只与其sh
实现相关(可执行sh
或csh
)。因为Bash是Bash,所以在Bash中键入cd
使用Bash的内置cd
。您可以使用键入cd
进行验证。我可以问一下man cd
是否显示了它的BSD内置,help cd
显示了它的GNU bash内置,版本4.4.19(1)。当我在命令行中输入cd dir
时,谁的内置正在工作?@工具我认为BSD内置只与其sh
实现相关(可执行sh
或csh
)。由于Bash是Bash,因此在Bash中键入cd
使用Bash的内置cd
。您可以使用键入cd
进行验证。我尝试了$man Bash | sed-n'/^*read\[/,/^$/p'
和'man Bash | sed-n/^*read[/,/^$/p'