如何在 shell 脚本中用户输入后添加新行

问题描述 投票:0回答:2

我有一个脚本,它接受用户输入的密码。在密码提示之后,无论我在下一行运行什么命令,该命令的输出都会在密码提示处打印。如何避免在密码提示时打印输出。

代码:

echo -n "Enter Password:"
read -s password

预期输出:

Enter Password:
Login successful.

电流输出:

Enter Password:Login successful.
linux bash shell
2个回答
4
投票

echo
读取密码后一行:

echo -n "Enter Password:"
read -s password
echo

0
投票

只要有可能,我喜欢利用阅读提示。 此外,通常最好使用 printf 而不是 echo。 就我而言,我会安排这样的事情:

read -reps "Enter password:  " 
printf '%s\n' "" "Say what you'd like.  "  "" 

读取命令使用 -r 来抑制任何转义字符(出于安全原因通常是一个很好的做法);它使用 -p 允许出现引号中的提示;它使用 -e (按行读取)和 -s (静默用户输入)。

在此 printf 示例中,每对引号出现在新行上(对于每个字符串 (%s) 使用换行符 ( ))。 如上所述,这将总共输出三行。 您可以根据需要构建它。 (如果你只想在某个地方有一个空白换行符,你可以在它自己的行上添加

printf '\n'
。)

© www.soinside.com 2019 - 2024. All rights reserved.