日付または猫のパラメータを完全に表示しないbash機能

日付または猫のパラメータを完全に表示しないbash機能

ログストアのバックアップ用のbashスクリプトを作成しています。

  • 私は次のように定義した関数を使用します。

    logit () {
        echo " $1  $2 "  >> /path/to/log
    }
    
  • なぜなら、logit 'Starting Backup' $(date +'%D %T')私は次のような結果を得たからです。

    Starting Backup 01/11/22
    

    だから時間が経ち、明らかにstdout機能が短縮されました。

  • それでecho $(date +'%D %T')私も時間を得ましたstdout

  • また、次のログ機能を使用したいと思います。

    logit 'DB-LOGS' $(cat /path/to/sql)
    

    明らかにする

    DB-LOG mysqldump:
    

    ここでもいくつかの標準出力がありません。

完全な出力を得るには、関数に何を変更または追加する必要がありますか?

ベストアンサー1

二重引用符コマンドの置換:

logit 'Starting Backup' "$(date +'%D %T')"

引用符がない場合、結果は$(date ...)単語で区切られ、ファイル名はワイルドカードで表示されます。短縮なし:$IFSまだデフォルト値(空白文字を含む)に設定されていると仮定すると、日付と時刻が別の引数として関数に渡されるため、$3最終的に時間が使用されなくなります。

おすすめ記事