이것이 가능한지 궁금합니다. 별칭을 만들고 명령이 아직 존재하지 않으면 sudo apt-get을 수행한 다음 별칭을 구현하여 이 변경을 중지합니다.
그래서 저는 이 의미론을 찾고 있어요.
smartalias top =
if (not installed htop) then
install htop;
alias top htop;
top
답변1
쉘 기능을 사용할 수 있습니다.
top() {
if ! type htop &>/dev/null; then
sudo apt-get install htop
fi
htop
}
답변2
Bash에는 이 문제를 해결하는 기존 기능이 있습니다.command_not_found_handle
. bash가 외부 명령을 실행하려고 할 때 실행되는 후크입니다. Zsh는command_not_found_handler
비슷합니다. 많은 배포판에는 존재하지 않는 명령을 실행하려고 할 때 관련 패키지를 설치하도록 제안하는 bash 설정이 있습니다. 예를 들어 Debian 파생 제품을 사용하고 있는 것으로 나타나므로command-not-found
팩. 이 메커니즘은 배포판에서 제공하는 각 명령에 필요한 별칭을 설정하는 것과 동일합니다.