이 사이트 는 "쉘 함수가 [별칭보다] 빠릅니다. 별칭은 함수를 조회하므로 확인 속도가 느립니다. 별칭은 이해하기 쉽지만 거의 모든 용도에서 별칭보다 쉘 함수가 선호됩니다. . "
(참이든 아니든) 셸 함수는 독립형 셸 스크립트와 어떻게 비교됩니까? 하나가 다른 것보다 특별한 이점이 있습니까, 아니면 특정 유형의 작업에 더 적합합니까?
별칭과 함수의 주요 차이점은 별칭은 인수 ¹가 아니라 함수가한다는 것입니다. alias l='ls --color'
와 같이 작성하면 l foo
가 ls --color foo
로 확장됩니다. 별칭 확장에 foo
을 (를) 잡고 함수로 할 수있는 방식으로 다른 작업을 수행 할 수 없습니다. 파라미터를 별칭에 전달하는 방법? 도 참조하십시오.
별칭은 함수 전에 조회됩니다 함수와 foo
라는 별칭이 모두있는 경우 foo
은 별명. (별명 foo
이 확장되면 일시적으로 차단되어 alias ls='ls --color'
와 같은 작업이 작동합니다. 또한 \foo
를 실행하여 언제든지 별칭을 우회 할 수 있습니다.) 그래도 측정 가능한 성능 차이를 기대하지 않습니다.
함수와 독립 실행 형 스크립트는 거의 비슷한 기능을 가지고 있습니다. 생각할 수있는 몇 가지 차이점은 다음과 같습니다.
함수와 독립 실행 형 스크립트의 중간에있는 것은 source
또는 .
내장으로 읽는 스크립트 스 니펫입니다. 함수와 마찬가지로 셸 환경을 수정할 수 있으며 셸 언어로 작성해야합니다. 스크립트와 마찬가지로 호출 될 때마다 즉시로드됩니다.
¹ 예, tcsh에는 적용되지 않습니다.