Comando rm gera saída de erro quando usa 'uname -m'

1. Comando rm gera saída de erro quando usa 'uname -m'

Morpheus
Minions

(usa Nenhuma)

Enviado em 17/08/2021 - 21:41h


rm -Rf "$programa"-"$versao"-$(uname -m)/ 2>> $log


Arquivo de log:

# rm: unrecognized option '--x86_64/'
# Try 'rm --help' for more information.



  


2. Re: Comando rm gera saída de erro quando usa 'uname -m'

Carlos A. P. Cunha
Carlos_Cunha

(usa Linux Mint)

Enviado em 17/08/2021 - 22:26h


Minions escreveu:


rm -Rf "$programa"-"$versao"-$(uname -m)/ 2>> $log


Arquivo de log:

# rm: unrecognized option '--x86_64/'
# Try 'rm --help' for more information.


Acredito esta ocorrendo por no BASH o parâmetros "--" é usados para indicar que acabou os parâmetros, ou seja depois disso não são mais interpretados, e isso esta gerando o seu erro.
Execute e o comando abaixo e poste a saída:


echo rm -Rf "$programa"-"$versao"-$(uname -m)/ 2>> $log


#-------------------------------------------------------------------------------------#
"Falar é fácil, me mostre o código." - Linus Torvalds
#-------------------------------------------------------------------------------------#



3. Re: Comando rm gera saída de erro quando usa 'uname -m'

Morpheus
Minions

(usa Nenhuma)

Enviado em 18/08/2021 - 12:26h


Carlos_Cunha escreveu:


Minions escreveu:


rm -Rf "$programa"-"$versao"-$(uname -m)/ 2>> $log


Arquivo de log:

# rm: unrecognized option '--x86_64/'
# Try 'rm --help' for more information.


Acredito esta ocorrendo por no BASH o parâmetros "--" é usados para indicar que acabou os parâmetros, ou seja depois disso não são mais interpretados, e isso esta gerando o seu erro.
Execute e o comando abaixo e poste a saída:


echo rm -Rf "$programa"-"$versao"-$(uname -m)/ 2>> $log


#-------------------------------------------------------------------------------------#
"Falar é fácil, me mostre o código." - Linus Torvalds
#-------------------------------------------------------------------------------------#




Criei um script de teste:


#!/bin/bash

programa="popcorn-time"
versao="0.4.5"
log="PopcornTime.log"


clear

mkdir -p "$programa"-"$versao"-$(uname -m)/ 2>> $log

ls

rm -Rf "$programa"-"$versao-"$(uname -m)/ 2>> $log


Neste script acima não tem saída de erro no rm.

Agora no script original aparece erro no rm.





4. Re: Comando rm gera saída de erro quando usa 'uname -m'

Morpheus
Minions

(usa Nenhuma)

Enviado em 18/08/2021 - 12:53h

O problema esta nos "-" do nome do arquivo abaixo na hora de remove ocorre o problema.

rm -Rf "$programa-$versao-$ARCH" 2>> "$log"

Já coloquei aspa simples e dupla.... e nada.

rm: unrecognized option '--x86_64'
Try 'rm --help' for more information.



Assim não tem problema:

rm -Rf "$programa$versao$ARCH" 2>> "$log"


5. Re: Comando rm gera saída de erro quando usa 'uname -m'

Carlos A. P. Cunha
Carlos_Cunha

(usa Linux Mint)

Enviado em 18/08/2021 - 18:05h

Então é como disse, o problema são o "--" pelo motivo mencionado, vc pode tentar assim:


rn -Rf -- --X86-64


Ou seja depois que terminar os parâmetros do rm que no seu caso é "-Rf" coloque mais um "--" como no meu exemplo ali, isso vai indicar que o vier depois não mais validos como parâmetros.



#-------------------------------------------------------------------------------------#
"Falar é fácil, me mostre o código." - Linus Torvalds
#-------------------------------------------------------------------------------------#



6. Re: Comando rm gera saída de erro quando usa 'uname -m'

Carlos A. P. Cunha
Carlos_Cunha

(usa Linux Mint)

Enviado em 18/08/2021 - 18:09h


Minions escreveu:

O problema esta nos "-" do nome do arquivo abaixo na hora de remove ocorre o problema.

rm -Rf "$programa-$versao-$ARCH" 2>> "$log"

Já coloquei aspa simples e dupla.... e nada.

rm: unrecognized option '--x86_64'
Try 'rm --help' for more information.



Assim não tem problema:

rm -Rf "$programa$versao$ARCH" 2>> "$log"


Mais uma coisa , ele esta ficando "--x86_64" pq me parece agora que as variáveis não estão sendo expandidas ai esta ficando apenas os "-" que vc esta usando para seprara as variaveis, que são dois, e ficando junto do a saída do uname que existe.
Como pedi no primeiro post consegue no seu script dar um echo antes na linha do rm para vermos como esta sendo executado pelo rm ?




#-------------------------------------------------------------------------------------#
"Falar é fácil, me mostre o código." - Linus Torvalds
#-------------------------------------------------------------------------------------#



7. Re: Comando rm gera saída de erro quando usa 'uname -m'

Gabriel
rabbit

(usa Debian)

Enviado em 18/08/2021 - 18:14h

Amigo você tá certo porém errado =)

Este é o comando que precisa:
rm -Rf "$programa-$versao-$(uname-m)" 2>> "$log" 


Porém você tem que validar se essas variáveis $programa e $versao realmente tem conteudo.

O --x86_64 ocorre porque não há conteúdo dentro destas duas variáveis.

Então fica assim: [variavelvazia]-[variavelvazia]-x86_64

x.x
run rabbit run


8. Re: Comando rm gera saída de erro quando usa 'uname -m'

Gabriel
rabbit

(usa Debian)

Enviado em 18/08/2021 - 18:17h

Você pode executar o comando:

$bash -x script.sh 


Para fazer o debug do script e ver se as váriáveis possuem realmente conteúdo.
OU
Só dar um echo $programa antes dessa parte do rm -Rf pra ver se há conteúdo na variável.

Obrigado, de nada, agora "min dê o joinha papai" =D


x.x
run rabbit run


9. Re: Comando rm gera saída de erro quando usa 'uname -m'

Morpheus
Minions

(usa Nenhuma)

Enviado em 18/08/2021 - 20:53h

Carlos_Cunha escreveu:

rm: unrecognized option '--x86_64'
Try 'rm --help' for more information.


Como pedi no primeiro post consegue no seu script dar um echo antes na linha do rm para vermos como esta sendo executado pelo rm ?



A resposta esta na imagem acima

https://www.vivaolinux.com.br/comunidades/imagens/anexos/Captura-de-tela_2021-08-18_12-57-33.png

usando o echo as 2 primeiras variáveis não aparece.



10. Re: Comando rm gera saída de erro quando usa 'uname -m'

Morpheus
Minions

(usa Nenhuma)

Enviado em 18/08/2021 - 21:02h


rabbit escreveu:

Amigo você tá certo porém errado =)

Este é o comando que precisa:
rm -Rf "$programa-$versao-$(uname-m)" 2>> "$log" 


Porém você tem que validar se essas variáveis $programa e $versao realmente tem conteudo.

O --x86_64 ocorre porque não há conteúdo dentro destas duas variáveis.

Então fica assim: [variavelvazia]-[variavelvazia]-x86_64



Boa noite amigo,

Conteúdo as variáveis ($programa e $versao) tem. No começo do script é colocado programa="nome-do-programa" e versao="0.4.5"

Eu acho que deve ser problema de interpretação do bash com os "-" no comando rm.

medida paliativa: '-'





11. Re: Comando rm gera saída de erro quando usa 'uname -m'

Carlos A. P. Cunha
Carlos_Cunha

(usa Linux Mint)

Enviado em 18/08/2021 - 21:04h

Minions escreveu:

Carlos_Cunha escreveu:

rm: unrecognized option '--x86_64'
Try 'rm --help' for more information.


Como pedi no primeiro post consegue no seu script dar um echo antes na linha do rm para vermos como esta sendo executado pelo rm ?



A resposta esta na imagem acima

https://www.vivaolinux.com.br/comunidades/imagens/anexos/Captura-de-tela_2021-08-18_12-57-33.png

usando o echo as 2 primeiras variáveis não aparece.


Então, e de fato como disse, as variais não estão sendo expandidas, esse é o problema, tem que ver o por que disso e aonde elas estão "sendo perdidas" ou outra coisa.
Rode o script com "bash -x" ai conseguira ver o problema.

Se não achar, poste a saída do "bash -x script"

#-------------------------------------------------------------------------------------#
"Falar é fácil, me mostre o código." - Linus Torvalds
#-------------------------------------------------------------------------------------#







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts