bash 매뉴얼에서
별명 정의 및 사용에 관한 규칙은 다소 혼동됩니다. Bash는 항상 해당 라인에서 명령을 실행하기 전에 하나 이상의 완전한 입력 라인을 읽습니다. 명령이 실행될 때가 아니라 명령을 읽을 때 별칭이 확장됩니다. 따라서 다른 명령과 동일한 행에 나타나는 별명 정의는 다음 입력 행을 읽을 때까지 적용되지 않습니다. 해당 행에서 별명 정의를 따르는 명령은 새 별명의 영향을받지 않습니다. 이 동작은 기능이 실행될 때도 문제가됩니다. 함수 정의 자체가 복합 명령이기 때문에 함수가 실행될 때가 아니라 함수 정의를 읽을 때 별명이 확장됩니다 . 결과로서, 함수에 정의 된 별칭은 해당 함수가 실행될 때까지 사용할 수 없습니다 . 안전을 위해 별명 정의를 항상 별도의 행에두고 복합 명령에 별명을 사용하지 마십시오.
두 함수 "함수는 함수가 실행될 때가 아니라 함수 정의를 읽을 때 확장됩니다"와 "함수에 정의 된 별칭은 해당 함수가 실행될 때까지 사용할 수 없습니다"라는 두 문장이 서로 상충되는 것 같습니다.
각각의 의미를 설명 할 수 있습니까?
.bashrc
맨 위의 파일에서 별칭 만 발견했기 때문에 실제로 위의 정보가 필요하지 않았습니다 .