![변수가 포함된 이전 명령을 다시 실행하기 위해 Bash에 내장된 명령 기록 기능을 사용할 때 왜 주의해야 합니까?](https://linux55.com/image/50913/%EB%B3%80%EC%88%98%EA%B0%80%20%ED%8F%AC%ED%95%A8%EB%90%9C%20%EC%9D%B4%EC%A0%84%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EB%8B%A4%EC%8B%9C%20%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0%20%EC%9C%84%ED%95%B4%20Bash%EC%97%90%20%EB%82%B4%EC%9E%A5%EB%90%9C%20%EB%AA%85%EB%A0%B9%20%EA%B8%B0%EB%A1%9D%20%EA%B8%B0%EB%8A%A5%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%A0%20%EB%95%8C%20%EC%99%9C%20%EC%A3%BC%EC%9D%98%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
명령 재실행 에 대해 알고 있지만 !!
변수가 포함된 명령을 재실행하면 정확히 어떻게 됩니까?
답변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완료되면 종료를 입력합니다.
건배!