변수가 포함된 이전 명령을 다시 실행하기 위해 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완료되면 종료하려면 입력하세요 .

건배!

관련 정보