![提示输入要存储在环境变量中的值](https://linux22.com/image/172497/%E6%8F%90%E7%A4%BA%E8%BE%93%E5%85%A5%E8%A6%81%E5%AD%98%E5%82%A8%E5%9C%A8%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E4%B8%AD%E7%9A%84%E5%80%BC.png)
我想在环境变量中存储一个值,但我不想这样做VAR_NAME=secretvalue
,因为这样它将存储在 shell 的历史文件中。有没有办法像那样提示我输入该值passwd
?
答案1
如果剪贴板中有密码,请使用xsel
或xclip
或pbpaste
。看Bash 中有从剪贴板复制到变量的函数吗?
否则,假设秘密值不包含任何换行符(或任何控制字符或您无法键入的字符):
printf 'Password: '
IFS= read -r VAR_NAME
许多 shell 允许您将提示直接传递给read
:
IFS= read -p 'Password: ' -r VAR_NAME
如果您不希望秘密在您的终端上可见,请参阅在 Bash 脚本中读取密码而不显示在屏幕上。请注意,即使没有这个,一旦您清除终端,密码也不会保存在任何地方。