MacOSX 10.8.2では、次のようにbashシェルでvimを実行できます。
/usr/bin/vim -c "normal G" -c 'startinsert' ~/.journal
まったく同じコマンドをスクリプトに入れると、次のようになります。
#! /bin/bash
export DISPLAY=:0
echo -n -e "\n[" `date` "]:\n\n">>~/.journal
/usr/bin/vim -c "normal G" -c 'startinsert' ~/.journal
スクリプトを実行すると、vimも正しく開きます。
しかし、crontabに01diaryscriptというスクリプトを置くと、次のようになります。
MAILTO=""
* * * * * ~/01diaryscript
vimを開くことができません。ただし、一意のIDを使用して毎分新しいvimプロセスが作成されます。
一方、MacVimパッケージ(7.3)に含まれているvimを使用すると、cronが機能します。
cronで最初のスクリプトを実行したときに生成されたvimプロセスにアクセスできるようにする方法はありますか?
答え1
crontabの行は、スクリプトを毎日毎分起動する必要があることを具体的に要求します。その過程でわかるように。
今vimを見ることができない理由は、cronが「バックグラウンドで」設定したコマンドを生成したためです。したがって、直接アクセスできません。 MacVimパッケージのvimが動作する理由がわからないため、説明できません。
どのように機能するかは、グラフィカルVIMを開くか、または内部にvimを含む新しいxtermを開くことです。それは次のとおりです。xterm -e /usr/bin/vim -c "normal G" -c 'startinsert' ~/.journal
答え2
cron
端末(またはXディスプレイ)なしでバックグラウンドでコマンドを実行します。その出力はどこに行くべきですか?任意のユーザーのクローンジョブの結果を自分の画面に表示しますか?無意味。
ここで解決しようとしている問題は何ですか?