ログストアのバックアップ用の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
最終的に時間が使用されなくなります。