![これがcrontabでは失敗しますが、スクリプトとして機能するのはなぜですか? [重複]](https://linux33.com/image/26532/%E3%81%93%E3%82%8C%E3%81%8Ccrontab%E3%81%A7%E3%81%AF%E5%A4%B1%E6%95%97%E3%81%97%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%A8%E3%81%97%E3%81%A6%E6%A9%9F%E8%83%BD%E3%81%99%E3%82%8B%E3%81%AE%E3%81%AF%E3%81%AA%E3%81%9C%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E9%87%8D%E8%A4%87%5D.png)
重複の可能性:
これら2つのクローンの操作にはどのような問題がありますか?
日付、時刻、長い数字、長い数字を含むファイルのフォーマットされた出力を印刷したいです。私はこれをLC_NUMERIC
UTFに設定し、%'d
フラグ文字を使用して数千の数値グループを作成しました。
crontabの次の行は次のエラーを生成します
/bin/sh: -c: line 0: unexpected EOF while looking for matching `"'
cronjobが実行されたとき。
@daily LC_NUMERIC=en_US.UTF-8 /usr/bin/printf "%s %s %'d %'d\n" \
$(/usr/bin/tail -n 31 /var/log/bandwidth)
読みやすくするために改行を追加してください。
@daily
スクリプトの同じ行(なし)は正常に機能します。
%'d
クローンがこの部分に喉が詰まって結末を見つけられなかったようです"
。なぜ?
答え1
ファイルを入れて
LC_NUMERIC=en_US.UTF-8 /usr/bin/printf "%s %s %'d %'d\n" $(/usr/bin/tail -n 31 /var/log/bandwidth)
chmodを770に設定し、そのファイル名をcrontabに入れることをお勧めします。
答え2
ファイルに環境変数を設定するには、その行にcrontab
その変数を含める必要があります。この設定は、この行以降のすべてのcronコマンドに影響します。
LC_NUMERIC=en_US.UTF-8
@daily /usr/bin/printf "%s %s %'d %'d\n" $(/usr/bin/tail -n 31 /var/log/bandwidth)
しかし、内部に何があるのかわからないと、/var/log/bandwidth
実際の問題が何であるかはわかりません。