我只想等待用户通过按确认消息Return。用bash,我可以打电话
$ read
$
但是,在sh(在我的情况下为破折号)中,我得到了
$ read
sh: 1: read: arg count
$
看来我必须提供一个论点?这种差异从何而来?
该标准的read
实用需要至少一个变量的名称。
一些shell的read
实现使用默认变量(例如REPLY
)来存储读取的数据(如果未提供名称),但dash
旨在成为POSIX兼容shell的目的却不是(因为标准不需要这样做)。dash
外壳中的等效项是
read REPLY
的bash
外壳,即使在其POSIX模式,并保持功能启用一些非POSIX。这是其中之一,这意味着read
即使您运行bash --posix
Shell ,没有变量名也将起作用。
有关启用POSIX模式时发生的所有事情的完整列表bash
(此问题实际上与问题无关),请参阅https://www.gnu.org/software/bash/manual/html_node/Bash-POSIX-Mode。 html
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句