私は.bashrcに複数の単語のエイリアスを追加しようとしています。もっと具体的に言えば私はapt update
なりたいsudo apt update -y
。しかし、複数の単語で構成されるエイリアスを指定する方法がわかりません。次のことを試しましたが、そのうち何も機能しません。
alias 'apt update'='sudo apt update -y'
alias "apt update"='sudo apt update -y'
alias apt\ update='sudo apt update -y'
この問題に対する解決策を知っている人はいますか?
ありがとうございます。
ベストアンサー1
わかりました。
$ alias 'apt update'='sudo apt update -y'
bash: alias: 'apt update': invalid alias name
これは明らかなようです。
同様に、名前にスペースを含む関数やコマンドは使用できません。または可能ですが、使用するときにスペースをエスケープする必要がありますが、これは楽しいことではありません。
簡単な修正は別の名前を使用することです。たとえば、次のように動作します。
alias apt-update='sudo apt update -y'
あるいは、本当にしたい場合は、apt
2番目の単語(最初の引数)をチェックする関数を作成することもできます。これはエイリアスと同じでなければならず、apt update foo
他のsudo apt update -y foo
コマンドはそのまま実行されます。
apt() {
if [ "$1" = "update" ]; then
shift # eat the 'update'
sudo apt update -y "$@"
else
command apt "$@"
fi
}
(apt update
もちろん、どのパラメータも許可されていませんが、他の同様のパラメータに渡すこともできます。)