しばらくパスワードを保存するためにpassを使用してきましたが、今はデフォルトの場所からパスワードストアを移動したいと思います。マニュアルページによると、PASSWORD_STORE_DIR
変数を目的のパスに設定するだけでデフォルトのパスを無視できますが、私の場合は何の効果もありませんでした。.password-store
フォルダを新しい場所に移動して環境変数を設定した後、コマンドを実行すると、pass
「エラー:パスワードストアが空です。 'pass init'を試してください。」というメッセージが表示されます。.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".
問題が何であるかについてのアイデアはありますか?変数名などに誤字がないことを確認しました。
答え1
変数とその値はpass
シェルで始まり、別々に実行されるプロセスからアクセスする必要があるため、変数は環境変数でなければなりません。環境変数は子プロセスによって継承されますが、他のシェル変数は継承されません。
あなたの場合、export
変数を使用してPASSWORD_STORE_DIR
環境変数としてマークすることを忘れました。
export PASSWORD_STORE_DIR=~bakhtin/.pass
export PASSWORD_STORE_DIR
すでに値を割り当てている場合は、変数を環境変数として表示することもできます。
環境に変数を渡すもう1つの方法は、pass
呼び出すシェルからシェル変数として作成せずに、呼び出し前に割り当てを作成することですpass
。
PASSWORD_STORE_DIR=~bakhtin/.pass pass
これはプロセスの変数値を設定しますpass
が、現在のシェルに変数を作成しません。