다음 명령은 명령줄에서 실행됩니다.
rsync -avh -r /Source/09_03_2016/ /Destination/
echo $(basename !:3)
출력 09_03_2016
하지만 쉘 스크립트에서 이 작업을 수행하면 작동하지 않습니다.
#! /bin/bash
/usr/bin/rsync -avh -r /Source/09_03_2016 /Destination/;
echo $(basename !:3)
산출! :삼
답변1
스크립트에서 다음 지시문을 사용합니다.
set -o history
set -o histexpand
이를 통해 기본적으로 대화형 셸에서만 활성화되는 기록 확장이 가능해집니다.
자세한 내용은 man bash
섹션 HISTORY EXPANSION
및 SHELL BUILTIN COMMANDS
명령을 참조하십시오 set
.