스크립트의 기록 확장

스크립트의 기록 확장

다음 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

관련 정보