Bash-阅读而不回显

Bash-阅读而不回显,bash,Bash,我想读入用户提供的一行文本 但是,我不希望在他们按enter键后将其回显,类似于read-s 但是,我想让他们在按enter键之前看到他们在写什么(而read-s会完全隐藏它,因为这意味着密码)。这很脆弱,但您可能只需要: #!/bin/bash read var tput cuu 1 tput el 这是易碎品,但您可能只需要: #!/bin/bash read var tput cuu 1 tput el 仅在点击返回后抑制终端回波是。。。。从安全角度看,这是毫无意义的。听起来您想读

我想读入用户提供的一行文本

但是,我不希望在他们按enter键后将其回显,类似于
read-s


但是,我想让他们在按enter键之前看到他们在写什么(而
read-s
会完全隐藏它,因为这意味着密码)。

这很脆弱,但您可能只需要:

#!/bin/bash

read var
tput cuu 1
tput el

这是易碎品,但您可能只需要:

#!/bin/bash

read var
tput cuu 1
tput el

仅在点击返回后抑制终端回波是。。。。从安全角度看,这是毫无意义的。听起来您想读取该行,然后发出终端控制序列,将光标向上移动一个,然后删除到该行的末尾。但这充其量只是一个脆弱的解决方案。与git commit类似,您可以打开一个文本编辑器,用户可以在其中键入密码。然后用户关闭编辑器,密码在屏幕上不再可见,脚本从文件中读取密码并删除文件。文件可以在内存中,因此硬盘上不应该有任何痕迹。或者,有一些工具,如whiptail(基于文本的GUI)和zenity(GTK对话框),允许您显示一个单行文本字段,在按enter键时关闭。仅在按return键后抑制终端回音是。。。。从安全角度看,这是毫无意义的。听起来您想读取该行,然后发出终端控制序列,将光标向上移动一个,然后删除到该行的末尾。但这充其量只是一个脆弱的解决方案。与git commit类似,您可以打开一个文本编辑器,用户可以在其中键入密码。然后用户关闭编辑器,密码在屏幕上不再可见,脚本从文件中读取密码并删除文件。文件可以在内存中,因此硬盘上不应该有任何痕迹。或者,有一些工具,如whiptail(基于文本的GUI)和zenity(GTK对话框),允许您在按enter键时显示一个单行文本字段,该字段将关闭。只需解释一下:用户键入的行不是“输出”被推送到
/dev/stdout
的程序,但它的输入表示
/dev/stdin
(尝试
读取>foo
),并检查
foo
的内容。因此,这里所做的基本上是,将光标向上移动一行并清除该行。这些是终端操作,而不是输出操作。只是解释一下:用户键入的行不是推送到
/dev/stdout
的程序的“输出”,而是表示
/dev/stdin
的输入(尝试
read>foo
)并检查
foo
的内容。因此,这里所做的基本上是,将光标向上移动一行并清除该行。这些是终端操作,而不是输出操作。