私のcronジョブを更新するためにbashスクリプトで次の行を使用しようとしています。
(sudo crontab -l ; echo "0 6 1-7 * * [ $(/usr/bin/date +\%u) == 7 ] && sh $script_path > $log_path") | sort - | uniq - | sudo crontab -
$script_path
これは前に定義$log_path
されています。私はこれが一般的に動作することを知っています。私は一つだけ持っています。 $(/usr/bin/date +\%u)
crontabファイルに書き込まれると、空の文字列で解決されます。テキストをそのままにしてください。
(重要ではありませんが、曜日を確認することが重要です。これは毎月最初の土曜日に実行されます。)
完全な部分文字列をどのように「エスケープ」するのですか?
ベストアンサー1
\
ドル記号の前に使用して文字通りの値を取得できます。
(sudo crontab -l ; echo "0 6 1-7 * * [ \$(/usr/bin/date +\%u) == 7 ] && sh $script_path > $log_path") | sort - | uniq - | sudo crontab -