2017-05-27 11 views
2

私は自分の人生でシェルスクリプトを作ったことはありませんでしたが(私が見ていないときに友達が私の学校の口座に入れた複数のトロルを見つけて削除する必要がありましたが)。オブジェクトファイルを逆アセンブルするシェルスクリプト?

作業ディレクトリの下にいくつかの.oファイルがあります。私はexample.oそれを与える場合は、単純な(パスなし)の.oファイル名、カレントディレクトリの下に一致するファイルを検索し、与えられていることにより、だから、

arm-none-eabi-objdump -D <found file> 

シェルコマンドを実行し、シェルスクリプトをしたいですdir1/dir2/example.oを見つけて実行します。

arm-none-eabi-objdump -D dir1/dir2/example.o 

答えて

2

シェルスクリプトは特に必要ありませんが、すべての方法をカバーするようにします。これは、選択したシェルがbashであると仮定していますが、これは他のシェルでも有効です。まず、同じ名前の複数のオブジェクトファイルを持つことができるかどうか、またそうした場合に何をしたいかを検討する必要があります。あなただけの最初の試合をダンプしたい場合、これはあなたのために働く必要があります。

find ./ -name example.o -exec arm-none-eabi-objdump -D '{}' \; -quit 

、しかし、あなたが見つかったすべての一致をダンプしたい場合は、(出力を連結します)-quitを削除するか、またはあなたが自分でタイピングを保存(または検索を逆方向)とシェルスクリプトでこれを入れて、あなたがする必要があるすべてのファイルで同じテキストを入れて、追加したい場合は

find ./ -name example.o | 
while read file; do 
    arm-none-eabi-objdump -D "$file" | less 
done 

:ループ内でコマンドを置きますファイルの先頭に#!/bin/bashを置き、chmod a+rx my-script.shでファイルを実行可能にします。次に、./my-script.sh example.oと入力してスクリプトを実行できます(スクリプトと同じディレクトリにいると仮定します)。スクリプトをPATH環境変数のどこかに置かない限り、ファイル名の前に./が必要です。

+1

シェルスクリプトのコマンドライン引数としてどのように名前を付けるのですか? – Makogan

+1

私は、実行可能な権限で実行する可能性がある潜在的な問題と同様に、それに関するもう少し詳細を与えるために私の答えを更新しました。 –

関連する問題