的文档
read
很难找到;在里面
man zshbuiltins
。它有这样的注释:
-e
-E
输入读数被打印(回显)到标准输出。如果
e
标志,则不向参数分配任何输入。
因此,没有向分配任何内容
overwrite
变量
E
应该工作:
> read -e var
qwerty
qwerty
> typeset -p var
typeset: no such variable: var
> read -E var
asdf
asdf
> typeset -p var
typeset var=asdf
> if [[ $var == asdf ]] print YES
YES
这个
-q
的选项
阅读
支持另一种生成确认提示的方式:
q
从终端只读取一个字符,如果该字符是y或y,则将name设置为y,否则设置为n。设置此标志后,仅当字符为y或y时,返回状态为零。此选项可与超时一起使用(请参阅
-t
); 如果读取超时,或遇到文件结尾,则返回状态2。。。
现在无需点击return:
> if read -q 'var?overwrite (y/n)?'; then
then> print;print "as you wish"
then> fi
overwrite (y/n)?y
as you wish