2.6.32-696 커널을 사용하는 두 개의 서로 다른 CentOS6 시스템에서 실행되는 응용 프로그램(내 응용 프로그램 아님)이 있습니다. 이 애플리케이션은 명령줄 기반(실행 후 자체 프롬프트가 있음) 데이터 분석 및 플로팅 루틴입니다. 한 컴퓨터에서는 명령줄 완성이 파일 앱을 통해 작동합니다. 즉, "read bob"이라고 말하면 현재 디렉터리에서 "bob"으로 시작하는 모든 파일이 나열됩니다. 다른 컴퓨터에서는 완료가 전혀 작동하지 않습니다. 다른 쉘을 시도하고 환경 변수를 살펴봤지만 다른 동작을 설명하기 위해 아무것도 식별할 수 없습니다. 이러한 일관되지 않은 동작을 해결하기 위해 컴퓨터 간의 일반 시스템 설정을 조회하거나 비교할 수 있는 방법이 있습니까?
의견에 대한 추가 세부정보:
시도한 쉘:
작업이 완료된 머신에서는 bash(해당 머신의 기본값)에서 작동하고, tcsh로 전환하면 작동합니다.
완료에 실패한 머신에서는 tcsh(해당 머신의 기본값)와 bash가 모두 실패합니다.
새로운 정보:
애플리케이션 CLI에서 파일 이름 완성을 얻을 수 없는 시스템에서 루트로 로그인하면(su 또는 sudo가 아니라 대화형 콘솔에서 루트로) 로그인하면 완료된다는 사실을 방금 발견했습니다. 권한이나 환경 문제를 나타내는 것 같지만 무엇을 찾아야 할지 모르겠습니다...
답변1
쉘 옵션 nullglob을 설정하면 문제가 발생합니다. shopt nullglob
설정이 켜져 있는지 꺼져 있는지 확인하려면 명령줄에 입력하세요 . 끄려면 를 실행하세요 shopt -u nullglob
.
이렇게 하면 option 도 마찬가지 failglob
이므로 그것도 확인하세요.