Bash-阅读而不回显
我想读入用户提供的一行文本 但是,我不希望在他们按enter键后将其回显,类似于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 仅在点击返回后抑制终端回波是。。。。从安全角度看,这是毫无意义的。听起来您想读
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
的内容。因此,这里所做的基本上是,将光标向上移动一行并清除该行。这些是终端操作,而不是输出操作。