zshユーザーのためのソリューション

zshユーザーのためのソリューション

upstartデーモン管理のためにUbuntu 10.04を実行しています。私のエンタープライズアプリケーションはデーモンとして実行され、さまざまな権限のためにrootとして実行する必要があります。たとえば、

sudo start my-application-long-ID
sudo stop my-application-long-ID
etc

alias次のコマンドの略語を紹介したいと思います。

alias startapp='sudo start my-application-long-ID'

動作するように実行しstartappますが、エイリアスにsudoを使用したくありません。

alias startapp='start my-application-long-ID'

実行時に使用されない場合をsudo startapp返しますsudo: startapp: command not found

ただし、エイリアスを追加すると、次のようになります。

alias sudo='sudo '

sudo startapp今はうまくいきますが、sudoがエイリアスを無視する理由はまだ疑問です。

ベストアンサー1

次の情報を確認しました。ここ

sudoを使用するときは、エイリアス拡張を使用してください。それ以外の場合、sudoはエイリアスを無視します。

alias sudo='sudo '

うまくいかない理由を説明しました。ここ

Bashはエイリアスコマンドの最初の単語だけをチェックし、それ以降の単語はチェックしません。つまり、sudo llのようなコマンドでは、bashは最初の単語(sudo)でのみエイリアスをチェックし、llは無視されます。エイリアス値の末尾にスペースを追加して、bashにエイリアス(sudoなど)の後の次の単語を確認するように指示できます。

おすすめ記事