以下は、fsの変更通知を受信したときにSlackwareのローカルリポジトリを簡単に更新するスクリプトです。バックグラウンドで動作しますが、小さな問題があります。 .gpgが存在する/userdirで作業する代わりに/で動作し、新しい.gnupgディレクトリを作成します。 /もちろん動作しません。私の質問は:スクリプトがuserdirで動作するように強制し、userdirのgpg-agentと.gnupgキーリングを読むにはどうすればよいですか? cdと(cd / usrdir)を試しましたが、何も機能しません。ありがとうございます。
#!/bin/sh
funct()
{
(cd /userdir) #don't work :(
echo password|/usr/libexec/gpg-preset-passphrase --preset XXXXXXXXXXXXXXXXXXXXXXX
#script update repo http
/usr/local/bin/gen_repos_files.sh -l /tmp/emptylog -v
#find /var/localrepo -type f |xargs chmod 644 -v
}
while inotifywait -o /dev/null -qqre modify /var/localrepo; do funct; done
~~
ベストアンサー1
( cmd )
cmd
サブシェルで実行されます。つまり、cmd
メインシェルの環境に影響を与えることはできません。走る
cd /userdir
代わりに。しかし、現在の作業ディレクトリはgpg
設定ディレクトリが~/.gnupg
。
設定が変な~
ようです/
。HOME
スクリプトの先頭で設定できます。
export HOME="/userdir"
または単にディレクトリを設定してくださいgpg
:
export GNUPGHOME="/userdir"