2013-10-17 20 views
9

私はcronを介して別のスクリプトsetup.shを呼び出すスクリプトrunonce.shを持っています。このケースは「TERM環境変数が設定されていない」理想的なケースとみなされます。 runonce.shスクリプトの出力に表示されます。"TERM環境変数が設定されていません"を取り除く方法

私は別の3番目の簡単なスクリプト - upgradeAndTest.shがsetup.shを呼び出すときに、 "TERM環境変数が設定されていません"という問題に直面しています。 upgradeAndTest.shスクリプトの出力に表示されます。なぜそうだ..?

また、setup.shのstderrをstdoutにリダイレクトしてスクリプトを呼び出すと、 "TERM環境変数が設定されていません。"コンソールに表示されます。

私はこのスクリプトを呼び出しスクリプトのstdoutから削除する手助けができますか?

答えて

25

cron経由で端末を要求するプログラムを実行すると問題が発生する可能性があります。それはcronによって実行されているとき、ターミナルを持っていません。疑わしい場合には

、しかし、行を追加して、変数はスクリプトで設定されていることを確認してください。

export TERM=${TERM:-dumb} 

を環境変数TERMがすでに設定されている場合は、これは何もしません。そうでない場合、最小限の機能を備えた標準端末に端末を設定します。これは、TERMが設定されていないと不平を言うプログラムを満たします。

+0

非常にきれいな解決策です。ありがとうございました! –

関連する問題