在等待来自操作的输入时按 Ctrl-Cread -sp
会将操作返回到命令行,但给定的输入被隐藏,就像它仍在运行一样read -s
。
例子
#!/bin/sh
sig_handler() {
echo "SIGINT received"
exit 1
}
trap "sig_handler" SIGINT
read -sp "ENTER PASSWORD: " password
echo
echo $password
通常执行如下:
$~ ./example.sh
ENTER PASSWORD:
password
$~ text
-bash: text: command not found
但是如果你在 ENTER PASSWORD 时按 Ctrl-C 你会得到
$~ ./example.sh
ENTER PASSWORD: SIGINT received
$~ -bash: text: command not found
在您使用 刷新之前,文本或任何其他以下命令不会显示为输入reset
。
收到 SIGINT 后如何将文本恢复为正常输入?read -p "ENTER PASSWORD: " password
出于明显的安全原因,不需要。