때로는 실행 파일을 가리고 인수 또는 출력을 조정하는 함수를 정의합니다. 따라서 함수의 이름은 실행 파일과 동일하므로 함수를 재귀 적으로 호출하지 않고 함수에서 실행 파일을 실행하는 방법이 필요합니다. 예를 들어, 자동으로 출력 실행 fossil diff
을 통해 colordiff
그리고 less -R
내가 사용을 :
function fossil () {
local EX=$(which fossil)
if [ -z "$EX" ] ; then
echo "Unable to find 'fossil' executable." >&2
return 1
fi
if [ -t 1 ] && [ "$1" == "diff" ] ; then
"$EX" "$@" | colordiff | less -R
return
fi
"$EX" "$@"
}
실행 파일의 위치를 확인하려면 간단히 입력 할 수 /usr/bin/fossil
있습니다. Bash /
는 명령이 함수가 아니라 실행 파일 임을 의미합니다. 그러나 정확한 위치를 모르기 때문에 전화를 걸어 which
결과를 확인해야합니다. 더 간단한 방법이 있습니까?
/
는 명령이 기능이 아니라 실행 파일 임을 의미합니다." 엄밀히 말하면, 사실이 아닙니다. 내가 끔찍한 (그리고 문서화되지 않은) 디자인 결정이라고 생각하는 것에서 bash는 함수 이름에 슬래시를 포함시킬 수 있습니다. 슬래시는 단순히/usr/bin/fossil
와 다른 문자열 이fossil
되므로, 말할 때 함수/usr/bin/fossil
를 실행하려고 시도하지 않습니다fossil
.