을 입력하는 것과 같이 OS X (10.6.4) 터미널에서 bash 쉘을 검사하면 다음과 같이 echo $0쉘 앞에 대시가 -bash있습니다. 이 대시는 무엇을 의미합니까?
답변
bash로그인 쉘로 호출 된다는 의미입니다 .
man bash 말한다 :
로그인 쉘은 인수 0의 첫 문자가
-이거나--login옵션으로 시작된 문자입니다 .bash가 대화식 로그인 쉘 또는
--login옵션이 있는 비 대화식 쉘로 호출 될 때/etc/profile파일이 존재하는 경우 먼저 파일에서 명령을 읽고 실행 합니다. 해당 파일을 읽은 후, 그것은을 찾습니다~/.bash_profile,~/.bash_login그리고~/.profile, 순서대로, 그리고 읽고 존재하고 읽을 수있는 첫 번째에서 실행하는 명령을.--noprofile쉘이 동작을 억제하기 시작할 때 옵션을 사용할 수있다.로그인 쉘이 종료되면 bash는 파일에서 명령을 읽고 실행합니다 (있는
~/.bash_logout경우).
당신은 찾을 수 있습니다 login -pf당신에 ps기본적으로 로그인 쉘을 시작 출력.
실행 시도 login -pf하고 login -pfl그 차이를 참조하십시오. man login차이점을 설명합니다.
-l이 로그인 세션이 아니라고 로그인에 의해 실행 프로그램 지시 (관례를, 로그인 세션의 첫 번째 문자로 하이픈으로 프로그램에 신호되어argv[0],이 옵션을 비활성화하는), 및 방지 그것을에서chdir(2)사용자의 홈 디렉토리에 보내고 . 기본값은 하이픈을 추가하는 것입니다 (이것은 로그인 세션입니다).