명령 행 프롬프트에서이 명령을 실행할 수 있습니다.
cp -r folder/!(exclude-me) ./
서브 디렉토리 를 folder
제외한 모든 컨텐츠를 exclude-me
현재 디렉토리에 재귀 적으로 복사합니다 . 의도 한대로 작동합니다. 그러나 필자가 작성한 bash 스크립트에서 작동하려면 이것이 필요합니다.
if [ -d "folder" ]; then
cp -r folder/!(exclude-me) ./
rm -rf folder
fi
그러나 스크립트를 실행할 때 :
bash my-script.sh
나는 이것을 얻는다 :
my-script.sh: line 30: syntax error near unexpected token `('
my-script.sh: line 30: ` cp -r folder/!(exclude-me) ./'
그리고 왜 명령 프롬프트에서 작동하는지 잃어 버렸지 만 bash 스크립트에서는 정확히 같은 줄이 작동하지 않습니다.
env > file1
스크립트와 실행./it
하고env > file2
그리고source it
난에 차이가 발견 거라고 희망,env
사실이 아니다들. 두 셸 (이 경우 대화식 대 비 대화식)의 차이점을 프로그래밍 방식으로 나열하려면 어떻게해야합니까?