スクリプトファイルの出力を記録するためにタイムスタンプを使用したいと思います。
On the console
日付+%Y%m%d_%H%M%S_%N
prints something like "20120206_104531_944652200"
私が見つけたすべてのそれらのナノとmikro秒をカットするために
日付+%Y%m%d_%H%M%S_%N | sed s、 "。\ {6 \} $" ,
which gives me something like "20120206_104531_944"
スクリプトファイルでは多少異なるようです。
タイムスタンプは、ログ出力が完了するたびに評価する必要があります。
このスクリプトコードは動作します:
#!/usr/bin/bash
log_prefix1="date +%Y%m%d_%H%M%s_%N"
echo "`${log_prefix1}` blabla"
sleep 3
echo "`${log_prefix1}` blabla"
残念ながら、私はナノ秒の3つの最も重要な桁だけでこれを実行する方法を見つけませんでした。
このスクリプトコードは機能しません:
#!/usr/bin/bash
log_prefix="date +%Y%m%d_%H%M%s_%N | sed s,\".\{6\}$\",,"
echo "`${log_prefix}` blabla"
sleep 3
echo "`${log_prefix}` blabla"
次のエラーメッセージが表示されます。
date: extra operand `|'
Try `date --help' for more information.
パイプが実行時にsedに間違っています。
何か案は?