변수가 포함된 이전 명령을 다시 실행하기 위해 Bash에 내장된 명령 기록 기능을 사용할 때 왜 주의해야 합니까?

변수가 포함된 이전 명령을 다시 실행하기 위해 Bash에 내장된 명령 기록 기능을 사용할 때 왜 주의해야 합니까?

명령 재실행 에 대해 알고 있지만 !!변수가 포함된 명령을 재실행하면 정확히 어떻게 됩니까?

답변1

자, 한번 시도해 봅시다:

$ 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

그래서 명령이 기록에 추가된 것 같습니다앞으로변수 확장이 발생했습니다.

답변2

시행착오를 거치면 유용할 수 있고 매우 빠르게 결과를 얻을 수 있을 것 같습니다. 질문하기 전에 이러한 것들을 직접 시도해 보는 것이 가장 좋습니다. 자세하고 자세한 질문을 하실 수 있습니다 :)

당신은 이것에 익숙하지 않은 것 같습니다. 아마도 다음이 당신에게 도움이 될 것입니다.

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

보시다시피 history명령은 예상대로 작동합니다. 138을 실행함으로써 처음 실행했을 때와 똑같은 명령을 실행했습니다.

전문가 팁: man관심 있는 명령에 대한 자세한 정보를 읽으려면 이 명령을 사용하십시오. 전임자:

man history

Q완료되면 종료를 입력합니다.

건배!

관련 정보