이상한 명령 후에 bash 프롬프트로 돌아갈 수 없습니다

이상한 명령 후에 bash 프롬프트로 돌아갈 수 없습니다

다양한 와일드카드를 사용하여 다음 명령을 실행하고 있습니다.

ls testdir/!(*/)

그 후 나는 bash 프롬프트로 전혀 돌아갈 수 없었습니다. ^C, ^D 또는 심지어 ^Z도 작동하지 않습니다. 리터럴 문자만 인쇄합니다.

업데이트: 다음을 입력하는 것으로 나타났습니다.

ls !()

같은 효과가 있습니다. 내 .bash_history를 삭제해도 도움이 되지 않았습니다.

따라서 두 가지 질문이 있습니다.

  1. 이 명령으로 복구가 가능합니까?

  2. bash에게 정확히 무엇을 하라고 지시하고 무엇을 기다리고 있나요?

노트:

그냥 실행하면 !(*/)"이벤트를 찾을 수 없습니다"라고만 뜹니다.

내가 실행 ls !(*/)하면 echo !(*/)위와 같은 일이 발생합니다.

bash 프로세스는 100% CPU 사용률로 목록에 표시되지만 그렇지 않습니다.ls

lxc 컨테이너에서 동일한 명령을 실행하면 "이벤트를 찾을 수 없음"이 표시됩니다. 내 bash 옵션은 거의 항상 Ubuntu 14.04입니다. 놀라운 일은 없습니다.

set -x명령 앞에 사용하면 ls아무 것도 에코되지 않습니다.

참고 2: shopt의 출력

자동 CD 꺼짐
cdable_vars 꺼짐
CD 닫기
해시 확인
채용 마감 확인
창 크기 확인
cmdhist 켜짐
31 닫기와 호환 가능
compat32 닫기
40 닫기와 호환 가능
41 닫기와 호환 가능
42 닫기와 호환 가능
전체 인용을 완료하세요.
디렉토리 확장 및 닫기
해산하다
주문 그룹 닫기
실행을 닫지 못했습니다.
별칭 확장
외부 디버깅이 꺼졌습니다
외부 전역 활성화
동봉된 따옴표
결함이 있는 전역 종료
강제 무시
글로벌스타 폐쇄
전역 범위 닫기
gnu_errfmt 끄기
첨부된 내역
기록 사용 안함
기록 확인이 사용 중지되었습니다.
호스트가 완전히 종료됩니다.
휴포넥시트 닫기
대화형 댓글
마지막 튜브 폐쇄
폐쇄
로그인 셸이 닫힙니다.
이메일 경고가 종료되었습니다.
no_empty_cmd_completion 끄기
nocaseglob 끄기
일치하는 케이스가 없습니다.
빈 공 꺼짐
프로그래밍 보상 활성화
변수를 열라는 메시지 표시
쉘 닫기 제한
Shift_verbose 끄기
소스 경로가 열려 있음
xpg_echo 끄기

세트 +o의 출력

+o 내보내기 설정
Set -o 중괄호 확장
set -o 이맥스
+o 오류 종료 설정
+o errtrace 설정
+o 기능 추적 설정
셋오하샬
set -o histexpand
기록 설정
무시하려면 +o를 설정하세요.
Set -o 대화형 주석
+o 키워드 설정
모니터 설정
+o 노클로버 설정
+o noexec 설정
+o 노글롭 설정
+o nolog 설정
+o 알림 설정
세트 +o 명사 세트
+o onecmd 설정
set+o 물리학
+o 파이프 실패 설정
+o posix 설정
+o 권한 설정
+o 세부정보 설정
+o vi 설정
+o xtrace 설정

답변1

shw@shw:/tmp $ ls testdir/!(*/) & pidls=$!
[1] 18453
shw@shw:/tmp $ 
shw@shw:/tmp $ cat /proc/18453/cmdline 
bashshw@shw:/tmp $ 
shw@shw:/tmp $ 
shw@shw:/tmp $ kill -9 18453
shw@shw:/tmp $ 
[1]+  Killed                  ls --color=auto testdir/!(*/)
shw@shw:/tmp $ 

관련 정보