我想在环境变量中存储一个值,但我不想这样做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 脚本中读取密码而不显示在屏幕上。请注意,即使没有这个,一旦您清除终端,密码也不会保存在任何地方。