这是我当前的read
操作,可以正常工作,但我想缩短:
echo "Please save your DB root password:" && read -s dbrp
echo "Please save your DB user password:" && read -s dbup
这就是我试图缩短它并且非常失败的方式(提示对我很重要):
echo "Please save your DB passwords (root, then non-root):" && read -s dbrp && echo "\n" && read -s dbup
它已经在我想要的一行中,但我对此并不满意,因为:
- 有两个
read -s
命令,而不是只有一个。 - 我必须使用
echo /n
来打破行,而我想要打破没有它。
有什么可以改善的吗?
更新
我在那里使用echo
时出错(除了添加\n
.read
有它自己的提示添加选项:
read -sp "What's your DB root password?" dbrp
read -sp "What's your DB user password?" dbup
如果您愿意更改变量的名称并使您的代码特定于 bash(在and
-s
中可用;仅用于提示,使用类似 in ),我认为以下内容优雅而简单:zsh
bash
-p
bash
zsh
read 'var?prompt'
ksh
结果应该在变量中包含您的密码,
$dbr_user
并且$dbr_root
.请注意,您需要
-r
andIFS=
以允许用户在其密码中包含反斜杠或前导/尾随空格或制表符。zsh
等价物: