다음 Bash 스크립트가 있습니다
case $- in (*H*) echo enabled ;; (*) echo disabled ;; esac
set -H
case $- in (*H*) echo enabled ;; (*) echo disabled ;; esac
pwd
last_command="!!"
echo $last_command
인쇄
disabled
enabled
/home/user
!!
코드의 첫 번째 줄은 기록 확장이 활성화되어 있는지 확인합니다. 두 번째는 역사를 확장할 수 있습니다. 세 번째도 첫 번째와 동일합니다. 그런 다음 실행되어 pwd
마지막 명령을 할당 last_command
하고 변수를 인쇄합니다.
역사는 확장되지 않습니다. 무슨 일이야?
답변1
비대화형 쉘의 경우 특별히 다음을 수행해야 합니다.반품명령 기록 활성화:
set -o history
set -o histexpand
그러면 귀하의 예가 작동합니다.
disabled
enabled
/home/schaller/tmp/502442
last_command="pwd"
pwd