/ / shell script para desmontar arquivos de objeto? - shell, scripting

script shell para desmontar arquivos objeto? - shell, scripting

Eu nunca na minha vida fiz um script de shell (embora eu tenha que encontrar e excluir vários trolls que meus amigos colocam na minha conta da escola quando eu não estou olhando).

Eu tenho alguns arquivos .o sob o diretório de trabalho. Eu quero um script de shell que, ao ser dado um nome de arquivo .o simples (sem caminho), encontre o arquivo correspondente no diretório atual e, em seguida, execute o comando shell

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

Então, se eu der-lhe example.o, ele vai encontrar dir1 / dir2 / example.o e, em seguida, executar

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

Respostas:

2 para resposta № 1

Um script de shell não é especialmente necessário para isso,mas vou tentar cobrir todas as abordagens. Isso pressupõe que o shell de escolha é bash, mas isso pode funcionar para outros shells também. Primeiro, você precisa considerar se pode ter vários arquivos de objeto com o mesmo nome e o que talvez queira fazer se fizer isso. Se você quiser fazer o dump apenas da primeira partida, isso deve funcionar para você:

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

Se, no entanto, você quiser despejar todas as correspondências encontradas, você pode remover -quit (que irá concatenar a saída) ou colocar o comando em um loop:

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

Se você deseja salvar a digitação (ou busca reversa) e colocar isso em um shell script, tudo que você precisa fazer é colocar o mesmo texto em um arquivo, adicionar no início do arquivo #!/bin/bash em sua própria linha e, em seguida, tornar o arquivo executável via chmod a+rx my-script.sh. Então você pode executar o script digitando ./my-script.sh example.o (supondo que você esteja no mesmo diretório que o script). Note que a menos que você coloque o script em algum lugar PATH variável de ambiente, então você precisa do ./ antes do nome do arquivo.