Estou tentando escrever um script em que ele cruzará as coisas:
1.A arquitetura para a qual o arquivo de instalação foi planejado (32 ou 64 bits)
2.A arquitetura do sistema.
A segunda parte é bastante fácil e pode ser descoberta usando comandos como lscpu
e, em seguida, extraindo essa linha específica usando a combinação de grep e awk
ou sed
. No entanto, a primeira parte está se mostrando complicada. Eu tentei usar o comando file mas ele tem uma saída muito irregular. Por isso, torna-se muito difícil extrair uma coluna específica a partir dele. Eu também tentei usar objdump
, embora tradicionalmente não usado para coisas como esta. No entanto, como esperado, devido a suas limitações, ele não reconhece a maioria dos tipos de arquivo.
A parte restante do script é muito simples, onde eu estaria comparando esses valores e continuando com minhas tarefas pretendidas. Eu gostaria de sua ajuda com o ponto 1 mencionado acima.
EDITAR:
Adicionando alguns exemplos para explicar meu problema com o comando file
$ file my_package_name.deb
my_package_name.deb: Debian binary package (format 2.0)
$ file my_package_name.rpm
my_package_name.rpm: RPM v3.0 bin i386/x86_64
Os exemplos acima foram para arquivos de configuração. Se eu fosse executá-lo para dizer algum script, isso me daria algumas coisas como:
$ file crclient O/P: crclient: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped
Como vocês podem ver, estou obtendo uma saída muito inconsistente com o comando file
. Por isso, tentar extrair uma parte disso tornou-se muito complicado.