나는 최근에 발행된 마지막 명령을 sudo로 반복하기 위해 이 영리한 bash 별칭을 발견했습니다. sudo !!
명령이 실패한 후 터미널에서 직접 를 사용하여 이 작업을 수행할 수 있습니다.
내가 찾은 별칭은alias mycmd='sudo $(history -p \!\!)'
이것이 어떻게 작동하는지 잘 모르겠습니다.
답변1
$(history -p \!\!)
기록에 다시 추가하지 않고 마지막으로 실행된 명령을 가져오는 방법입니다. 에서 help history
:
-p perform history expansion on each ARG and display the result
without storing it in the history list
Bash에서는 !!
마지막으로 실행된 명령까지 확장되지만 이 확장은 별칭 확장 전에 실행되므로 별칭에서 직접 사용할 수 없습니다. (역사적 확장은 가장 초기의 확장 중 하나입니다. 이는 버팀대 확장 이전에도 발생했습니다(예:보통 먼저).)
따라서 마지막으로 실행된 명령을 얻으려면 어떤 방법을 사용해야 합니다. 이는 셸 방식을 history -p
확장한 를 사용하여 수행할 수 있습니다.!!
왜 도망쳤는지는 모르겠지만 !
. 나에게는 백슬래시 없이도 잘 작동합니다.