sh内置read命令省略变量名时是否存在默认变量名?
sh中read命令省略变量参数的默认行为
当你在sh中使用read命令却省略指定的variable参数时,命令不会报错,而是会将读取到的输入内容默认存储到**特殊变量REPLY**中。
比如执行以下命令:
read echo "输入的内容是:$REPLY"
当你输入任意文本后,echo会输出你输入的内容,因为read把内容存进了REPLY。
你遇到的不符合预期的结果,大概率是因为没意识到这个默认变量的存在,或者脚本中其他地方意外使用了REPLY变量导致的冲突。
补充:这个行为是POSIX标准shell的统一规定,并非sh独有的特性。
内容的提问来源于stack exchange,提问作者Mihai
相关产品推荐
相关产品推荐

