2016-11-21 8 views
0

いくつかのunixシェルコマンドとその出力を持つファイルをスキャンする必要があります。ファイル全体で言及されたunixコマンドのリストを抽出し、別のファイルにリストする必要があります。特定のコマンドのリストのためにファイルをスキャンし、存在する場合はそれらを別のファイルにリダイレクトするための方法の1つです。しかし、リストが増え続けるにつれ、これは難しくなります。この行の他のアイデア。 TIAファイルからすべてのunixコマンドを特定する

+0

あなたが望むのは、任意のスクリプトが実行中にどのコマンドを呼び出すことができるかを判断することだと仮定すると、すべてのコーナーケース( 'eval'の使用法を含む)をカバーする必要がある場合、現実の設計上の制約と要件は何か、十分な実装が存在するかどうか(実際には十分に良いかどうか)を判断することができますか? –

+0

...あなたが質問していること、または質問していないことを前提にする必要がないほど質問を明確にすることができれば、それは参考になります。 –

+1

ファイルの内容の例を挙げることはできますか?それは単に 'script'コマンドの出力ですか?各コマンドの前にプロンプ​​ト文字列がある場合は、完全ではありませんが、コマンドを抽出するのはかなり簡単です。 –

答えて

1

bashで利用可能なすべてのコマンドのリストをcompgenで取得できます。ホワイトリストアプローチを使用する場合は、compgen -ac(エイリアスとコマンド)の出力をファイルに格納し、入力ファイルの各トークンをそのリストと照合することができます。

compgenの使用の詳細はthis answerにあります。

+0

Hmm。私がそれを読んでいるところで、OPはコマンドがシステム上に存在するのとは対照的に特定のスクリプトの実行中に(そのスクリプトのテキスト/静的解析を介して)呼び出される可能性があることを理解しようとしていますが、確かにここで少し曖昧です。 –

関連する問題