PROMPT_COMMAND에 특별한 정보가 있습니까(이전 명령과 같은)?

PROMPT_COMMAND에 특별한 정보가 있습니까(이전 명령과 같은)?

방금 실행한 명령을 받고 싶습니다 PROMPT_COMMAND. 이보다 더 좋은 방법이 있습니까 history 1?

PROMPT_COMMAND보다 일반적으로 실행 시 어떤 정보를 사용할 수 있습니까? 이것이 방금 실행한 명령의 종료 코드라는 것을 알고 있지만 $?다른 코드가 무엇인지는 잘 모르겠습니다.

답변1

앞서 언급했듯이 $!마지막으로 실행된 명령의 종료 코드가 포함됩니다. Matei David는 다음을 실행해도 환경에 아무것도 추가되지 않는다는 것을 (내 시스템에서) 보여주는 PROMPT_COMMAND훌륭한 제안을 했습니다 .setPROMPT_COMMAND

$ PROMPT_COMMAND="set > /tmp/prompt.log"

$ set > /tmp/basic.log

$ diff -u0 /tmp/basic.log /tmp/prompt.log 
# no results

물론 이것은 일화적이고 Bash 마법 변수나 포함되지 않은 다른 상태를 포함하지 않지만 set시작에 불과합니다.

다음을 사용하여 마지막 명령을 얻을 수 있습니다.

last_command=$(HISTTIMEFORMAT='' history 1 | sed 's/ *[0-9]* *//')

관련 정보