私はcentOSで簡単なシェルスクリプトを書いて、これをcronジョブから実行しました。 私のスクリプトは以下のようになります。Cron:シェルスクリプトからPATHを設定できない
#!/bin/bash
export PATH=$PATH:$(pwd)
echo $PATH
echo $PATH| mail -s "PATH" [email protected]
そして、私は、端末から直接このスクリプトを実行した場合、それは以下の出力:/浮浪者は、私が予想している
/sbin:/bin:/usr/sbin:/usr/bin:/vagrant
。
しかし、これはcronジョブから実行された場合、それは次のように(私のメールに)出力:
cronジョブから実行するとき、私はきちんと/浮浪者を設定するにはどうすればよい/usr/bin:/bin:/root
?
UPDATE:/ VagrantをPATHとして設定できますが、それは私のためにのみ有効です。スクリプトを他のユーザーに配布する場合は、このディレクトリを作成する必要があります。だから私はそれが実行されている場所から場所をエクスポートするようなスクリプトを作成したい。
私の場合、スクリプトは/ vagrantから実行されていますが、現在のディレクトリは/ rootとしてエクスポートされています。これが問題です。
更新:悲しいことに、パスは正しくエクスポートされましたが、/ vagrantディレクトリのファイルが見つからないと報告されました。
さて、 '/ vagrant'を指定してください。 '$(pwd)'は現在の作業ディレクトリを解決します。これは状況によって異なります。 – arkascha
'cron'は別の環境で動作するので、あなたがあなたのユーザーと一緒に走ったときと同じ値を取ることはできません。 '/ vagrant'を追加したい場合は、単にハードコードしてください。変数を使用する場合は、[crontabが使用する環境変数はどこで設定できますか?](http://stackoverflow.com/a/37183809/1983854) – fedorqui
また、使用したいもの:現在の作業ディレクトリ(pwd)またはスクリプトのディレクトリ? – fedorqui