0

渡された引数を本質的に見て、ファイルを作成または変更しているかどうかをチェックし、それを後で簡単にアクセスできるように mysql データベースに保存する perl スクリプトをまとめました。ここに興味深い部分があります。ターミナルに入力されたすべてのコマンドの前に、この perl スクリプトを実行するにはどうすればよいですか。人々がそれを実行するのを忘れないように、このダミー証明を作成する必要があります。

申し訳ありませんが、この質問を適切に作成していませんでした。私がやりたいのは、たとえば「./run.pl ls」のように各コマンドが実行されるように、各コマンドの前に追加することです。そうすれば、コマンドが mv の場合や、たとえば out ファイルを作成する場合に、ファイルの変更を追跡できます。スクリプトはそれをほとんど処理しますが、ユーザーに対してシームレスに実行する方法がわかりません。

bashターミナルでubuntuサーバーを実行しています。

ありがとう

4

2 に答える 2

4

私の理解が正しければ、すべてのコマンドを実行する前に関数を実行する必要がpreexecありprecmdますzsh

残念ながらbash、これに対するネイティブ サポートはありませんが、DEBUGtrap を使用して実行できます。

この方法を適用したサンプルコードを次に示します。

このページでは、役立つ情報も提供しています。

于 2012-10-03T15:07:55.000 に答える
1

ファイルを変更して、~/.bashrcそこでスクリプトを起動できます。各ユーザーには、このファイルを変更する権限があり、スクリプトの呼び出しが削除される可能性があることに注意してください。

この/etc/bash.bashrcファイルはシステム全体に適用され、root のみが変更できます。

これら.bashrcは、bash の新しいインスタンスが作成されたときに実行されます (新しい端末など)。

これは、Ubuntu システム上shのシステム シェルであると同じではありません。dash

于 2012-10-03T15:04:12.147 に答える