
単純なエイリアスとより複雑な操作のための追加機能が含まれているか、~/.bashrc
提供される巨大なエイリアスファイルがあります。~/.zshrc
# example aliases
alias "sudo=sudo "
alias "testalias=echo 'Aliases work as expected'"
# example function
testfunction(){
echo "Function $1 works as expected"
}
次のコマンドを使用または使用せずにこのコマンドを実行すると、これが発生しますsudo
。
> testalias
Aliases work as expected
> testfunction "test"
Function test works as expected
> sudo testalias
Aliases work as expected
> sudo testfunction "test"
sudo: testfunction: command not found
私もあまり違いはありません
export -f testfunction && sudo -E testfunction "test"
alias "testfunction-alias=testfunction" && sudo -E testfunction-alias "test"
sudo
エイリアスを使用したかのように関数をどのように呼び出すことができますか?
エイリアスが多すぎるため、それぞれのエイリアスをエクスポートまたは作成する必要がない場合があります。
答え1
sudo
コマンドを実行すると、エイリアスや機能を実行できません。エイリアスはシェルの機能です。したがって、エイリアスを実行するには、まずルートシェルを起動する必要があります。