あなたは次のステートメントで質問に答えました:
<ブロック引用>
Cron はこれを .sh
と呼びます 2分ごと
Cron はターミナルでは実行されません。
このエラー メッセージが表示される最も一般的な理由は、スクリプトがユーザーの .profile
を取得しようとするためです。 tty関連の何かを行う前に、端末で実行されていることを確認しません。回避策には、次のようなシバン行の使用が含まれます:
#!/bin/bash -p
これにより、システム レベルのプロファイル スクリプトがソース化されます。このスクリプトは、あまりばかげたことをしようとせず、端末からの実行に依存するコードを保護します。
これがスクリプト全体の場合、TERM
他の何かからエラーが発生しています スクリプトのプレーンなコンテンツよりも。
端末コマンド、つまり「クリア」を使用して、cron (端末なし) から呼び出されたスクリプトで、このエラー メッセージが表示されます。あなたの特定のスクリプトでは、smbmount コマンドは端末を想定しているため、上記の回避策が適切です。
本当に設定されていないかどうかを確認できます .コマンド set | grep TERM
を実行します .
そうでない場合は、次のように設定できます:export TERM=xterm