Por que você deve ter cuidado ao usar a função de histórico de comandos integrada do Bash para executar novamente comandos anteriores que contêm variáveis?

Por que você deve ter cuidado ao usar a função de histórico de comandos integrada do Bash para executar novamente comandos anteriores que contêm variáveis?

Eu sei !!que os comandos são executados novamente, mas o que exatamente ocorreria se eu executasse novamente um comando que tivesse uma variável no comando?

Responder1

Bem, vamos tentar:

$ foo=bar
$ echo $foo
bar
$ foo=qux
$ !-2
echo $foo
qux
$ history
...
  219  foo=bar
  220  echo $foo
  221  foo=qux
  222  echo $foo
  223  history

Parece que o comando foi adicionado ao históricoantesocorre expansão variável.

Responder2

Parece que algumas tentativas e erros podem ser úteis e fornecer um resultado para você muito rapidamente. Antes de fazer uma pergunta, é bom experimentar você mesmo essas coisas. Como resultado, você pode fazer perguntas informadas e detalhadas :)

Como parece que você é muito novo nisso, talvez o seguinte seja benéfico para você?

$ history -c
$ FOOD="Bananas"
$ echo $FOOD
Bananas
$ history
  137  FOOD="Bananas"
  138  echo $FOOD
  139  history
$ !138
echo $FOOD
Bananas

Como você pode ver, o historycomando funcionou conforme o esperado. Ao executar 138, executamos exatamente o mesmo comando que executamos na primeira vez que o executamos.

Dica profissional: use o mancomando para ler mais sobre um comando que lhe interessa. Ex:

man history

e digite Qpara sair quando terminar.

Saúde!

informação relacionada