2

基本的に、ファイルの命名規則の標準形式があります。それはこれに分解されます:

target_dateUTC_timeUTC_tool

したがって、たとえば、「foo」のターゲットでtcpdumpを実行すると、ファイルはになりますfoo_dateUTC_timeUTC_tcpdump。十分に単純ですが、誰もが常に(そして一貫して)入力するのは苦痛です...そこで私は次のようなシステム変数を設定するbashスクリプトを作成しようとしました:

FILENAME=$TARGET\_$UTCTIME\_$TOOL

次に、次のように、実行時に変数を呼び出すことができます。

tcpdump -w $FILENAME.lpc

これはすべてチャンピオンのように機能します。メニュー方式の.shがあり、ユーザーは現在の変数を表示したり設定したりすることができます...ファイルの生成は簡単です。残念ながら、日付/時刻変数を設定することにより、作成時の値に(当然のことながら)ロックされます。私は次のように変数を設定します:

UTCTIME=$(/bin/date --utc +"%Y%m%d_%H%M%Z")

私が本当に必要としているのは、実行時に更新される変数を作成する方法、または(より可能性が高い)この猫の皮を剥ぐ別の方法のいずれかです。

解決策を探しているときに、私は同様の問題に遭遇しました...このように。

しかし、正直なところ、私は2つのアプローチを組み合わせて、シンプルで配布可能なソリューションを作成する方法に困惑しています。

.shファイルはpastebin経由で投稿されます

4

1 に答える 1

1

関数を使用します。

generate_filename() { echo "${1}_$(/bin/date --utc +"%Y%m%d_%H%M%Z")_$2"; }

そして、次のように使用します。

tcpdump -w "$(generate_filename foo tcpdump).lpc"

コマンド名を自動判別する機能がなかなか得られない。bash history を使用して取得し、入力する文字数を節約できます。

tcpdump -w "$(generate_filename foo !#:0).lpc"
于 2012-11-28T15:52:27.650 に答える