![서브쉘에서 -n을 활성화하는 것을 잊지 마세요](https://linux55.com/image/75895/%EC%84%9C%EB%B8%8C%EC%89%98%EC%97%90%EC%84%9C%20-n%EC%9D%84%20%ED%99%9C%EC%84%B1%ED%99%94%ED%95%98%EB%8A%94%20%EA%B2%83%EC%9D%84%20%EC%9E%8A%EC%A7%80%20%EB%A7%88%EC%84%B8%EC%9A%94.png)
에서 검색 할 수 echo
built-in
있도록 비활성화했습니다 . 나는 이것을 위해 명령을 사용했습니다. 아래를 참조하세요.echo
$PATH
enable -n
$ type echo
echo is a shell builtin
$ enable -n echo
$ type echo
echo is /bin/echo
echo
하지만 현재 쉘에서 하위 쉘을 열면 내장된 쉘이 다시 사용됩니다. 아래를 참조하세요.
$ type echo
echo is /bin/echo
$ bash
$ # Now I am in child shell
$ type echo
echo is a shell builtin
echo
서브셸에서도 이 설정이 발견 되도록 $PATH
(즉, enable -n echo
유효한 상태로 유지) 서브셸에서 이 설정을 보존할 수 있는 방법이 있습니까 ?
답변1
예, 두 가지 방법이 있습니다. 하나는 대화형이고 다른 하나는 비대화형 bash 셸입니다.
대화형 bash 셸의 경우 명령을 파일 enable -n echo
에 넣으세요 $HOME/.bashrc
. 모든 대화형 쉘은 외부 에코를 사용합니다.
그래요아니요비대화형 쉘에 대해 이 작업을 수행하는 것이 좋지만 이를 수행하려면 BASH_ENV
다음 줄을 포함하도록 환경 변수를 설정해야 합니다 enable -n echo
. 모든 비대화형 bash 쉘은 BASH_ENV 파일에 의해 명명된 파일을 실행하므로 외부 에코.
답변2
("enable -n")은 다음과 같습니다.bash 관련 기능. 당신은 넣을 수 있습니다
enable -n echo
예를 들어 해당 쉘 초기화 스크립트에서 ~/.bashrc
호출하는 모든 쉘에 영향을 미치도록 합니다.