2017-12-26 25 views
0
#!/bin/bash 

ddd=$(date +%Y-%m -d "-1 month") 
xmessage -timeout 10 $ddd 

この簡単なスクリプトを試してみると、ターミナルからうまく動作するようになりますが、このスクリプトをcronで起動すると、変数は常に空ですか?私は多くの異なる構文を試しましたが、結果は同じです。ターミナルでは動作しますが、cronでは動作しません。bashの変数はcron経由ですか?

+0

xmessageは、X-windowsサーバーが実行されていることを前提としています。 Cronは制御端末がなくてもプログラムを起動します。 – wildplasser

答えて

0

に気を付けるには、2つの事柄があります

  1. は(@wildplasserで指摘したように)、xmessageはcronの環境から動作しない可能性があります - ちょうど"a test string"の代わり$dddでそれを実行して確認してください。
  2. 多くのcronシステムでは、コマンドは空の環境で実行されるため、$PATHは空です。バイナリへの絶対パスを使用するようにしてください(例:/bin/date/usr/bin/xmessage)。
関連する問題