다음 기능을 올바르게 작동시키는 방법
# Install git on demand
function git()
{
if ! type git &> /dev/null; then sudo $APT install git; fi
git $*;
}
함수 git $*
대신 호출로 ?/usr/bin/git
git()
답변1
이와 같이:
# Install git on demand
function git()
{
if ! type -f git &> /dev/null; then sudo $APT install git; fi
command git "$@";
}
내장된 command
억제 기능 조회. 또한 단어가 아닌 인수(예: 공백이 있는 파일 이름)를 올바르게 처리하기 때문에 귀하의 $*
것을 으로 변경했습니다 ."$@"
또한, 그렇지 않으면 눈에 띄기 때문에 -f
함수에 매개변수를 추가했습니다 .type
실패 와 같은 문제가 발생할 경우 apt-get install
어떻게 해야 할지 생각해 볼 수 있습니다.
답변2
아니면 어떤 명령이라도 실행할 수 있는 보다 일반적인 기능일 수도 있습니다. 이 경우 "-f"는 "-t"로 대체될 수 있습니다. 기능과의 충돌은 발생하지 않습니다.
function runcmd()
{
if ! type -t $1 >/dev/null; then
pkg=$(apt-file search -x "bin.*$1\$" | cut -d: -f1)
sudo apt-get install $pkg
fi
eval "$@"
}
물론, "apt-get install" 오류는 처리되어야 합니다.