変数の挿入と変数の保持

変数の挿入と変数の保持

私はVMWareを使用していますが、他の人が何を言っても、ほとんどのUNIXコマンドに反応します。

ただし、再起動後も変更されていないファイルがほとんどないなど、いくつかの点は一意です。そのため、変数を使用してログファイル名を指定するスクリプトのバックアップに問題が発生しました。

手動で挿入すると

backup-$(date +%Y-%m-%d).log

cron、ログファイルはもちろん、開始日に沿って名前が付けられます。ただし、local.sh再起動時に操作を再開するために接続した場合cron

/bin/echo "0 0 * * 1-5 ...backup-$(date +%Y-%m-%d).log

もちろん、次のように終わります。

backup-2014-07-01.log

もしそうなら、問題はcron日付ではなく変数になるように書く方法です。

ベストアンサー1

文字列のドル記号は、echoが実行されると拡張され、その後コマンド置換が発生します。あなたが望むのは、その文字列を渡すことです文字列としてファイルに。置換が発生しないようにする方法は2つあります。

  1. ドル記号を避けることができます。

     /bin/echo "0 0 * * 1-5 ../..backup-\$(date +%Y-%m-%d).log"
    
  2. 二重引用符の代わりに一重引用符を使用して文字列を囲むことができます。

    /bin/echo '0 0 * * 1-5 ../..backup-$(date +%Y-%m-%d).log'
    

いずれにしても、すべてのシェルでこのステートメントをテストし、リテラル文字列を提供するか、代替コマンドを実行していることを確認できます。

おすすめ記事