他のBash文字列エスケープの質問(エコーを使用)

他のBash文字列エスケープの質問(エコーを使用)

私の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 -

おすすめ記事