
これが可能かどうか疑問に思います。エイリアスを作成してコマンドがまだ存在しない場合は、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
パック。このメカニズムは、ディストリビューションが提供する各コマンドに必要なエイリアスを設定するのと同じです。