쉘에서 이 작업을 수행하면 !!
bash 변수에 마지막 명령이 포함되어 있음을 알 수 있습니다.
$> echo foo
foo
$> echo !!
echo echo foo
echo foo
하지만 이 스크립트는
#!/bin/bash
mkdir /path/doesnt/exist ||
{
echo "Could not !!";
exit 1;
}
산출
mkdir: cannot create directory ‘/path/doesnt/exist’: No such file or directory
Could not !!
내 예상 결과는Could not mkdir /path/doesnt/exist
이것이 작동하지 않는 이유와 해결 방법은 무엇입니까?
답변1
!!
bash 기록을 읽는 명령이고, bash 기록은 대화형 모드에서만 사용되기 때문 입니다.
현실적으로 모든 스크립트가 명령 기록을 채우는 것을 원하지 않습니다.
bash 매뉴얼의 "History Expansion" 섹션에서
기본적으로 비대화형 쉘은 기록 확장을 수행하지 않습니다.