我正在运行一个脚本,该脚本根据用户在与脚本交互期间提供的输入与不同的应用程序进行交互。在此过程中,用户提供指定的用户名/密码,脚本随后使用该用户名/密码登录应用程序。
为了减少用户每次运行脚本时提供密码的需要,我想将其作为变量存储在内存中,以便在脚本退出时密码可用,并且如果用户在同一终端内再次运行脚本,密码仍然可用。
当用户终端退出时,密码变量应该被清除。另外,我不想将密码存储在硬盘上的文件中。
我尝试使用,export
但当脚本退出时它不起作用。
操作系统:Linux RHEL 6/7
答案1
我们可以export
在脚本中使用该变量进行设置。
现在获取脚本的源代码,当它运行时,用户提供密码作为输入,脚本导出该密码并将其设置在 shell 级别,即使脚本完成/退出时也会保留该密码。
下次当脚本在同一个 shell 中再次运行时,我们可以获得变量的详细信息。
获取脚本 -->
bash$>. ./myscript #Note the space after 1st DOT(.).
参考:
https://askubuntu.com/questions/53177/bash-script-to-set-environment-variables-not-working
https://stackoverflow.com/questions/14742358/preserve-environments-vars-after-shell-script-finishes
答案2
将密码(和其他敏感数据)放在脚本(或文件)中是一种非常糟糕的想法。不应该运行该命令的人可能会获取脚本并运行它,甚至窃取密码来制造混乱。
看看你是否能用其他方式处理用户身份验证。如果一开始就真的需要,那就是……