다양한 와일드카드를 사용하여 다음 명령을 실행하고 있습니다.
ls testdir/!(*/)
그 후 나는 bash 프롬프트로 전혀 돌아갈 수 없었습니다. ^C, ^D 또는 심지어 ^Z도 작동하지 않습니다. 리터럴 문자만 인쇄합니다.
업데이트: 다음을 입력하는 것으로 나타났습니다.
ls !()
같은 효과가 있습니다. 내 .bash_history를 삭제해도 도움이 되지 않았습니다.
따라서 두 가지 질문이 있습니다.
이 명령으로 복구가 가능합니까?
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 $