我一直在使用 pass 来存储密码,但现在我想将我的密码存储从默认位置移动。根据手册页,将PASSWORD_STORE_DIR
变量设置为所需的路径以覆盖默认路径就足够了,但是在我的情况下,这没有效果。将.password-store
文件夹移动到新位置并设置环境变量后,执行命令pass
会导致“错误:密码存储为空。尝试“传递初始化”。”。即使只是重命名.password-store
内部主目录:
$ cd
$ mv .password-store .pass
$ PASSWORD_STORE_DIR=/home/bakhtin/.pass #bakhtin is the user name
$ pass
Error: password store is empty. Try "pass init".
关于问题可能是什么的任何想法?我确保变量名称等没有拼写错误。
由于变量和它的值需要被访问
pass
,一个进程从 shell 启动并与它分开运行,所以该变量需要是一个环境变量。环境变量由子进程继承,但其他 shell 变量不被继承。在您的情况下,您只是忘记
export
在PASSWORD_STORE_DIR
变量上使用将其标记为环境变量。export PASSWORD_STORE_DIR
如果您已经为其赋值,您也可以使用 just将变量标记为环境变量。将变量传递到环境中的另一种方法是
pass
在调用 shell 中甚至不将其创建为 shell 变量的情况下,将赋值写在调用的前面pass
:这会为进程设置变量的值,
pass
但不会在当前 shell 中创建变量。