よく使用するツールにいくつかのパラメーターを渡すエイリアスがあります。時々私は自分自身として、時にはsudoの下で走ります。残念ながら、もちろん、sudoはエイリアスを認識しません。
エイリアスを渡す方法についてのヒントはありますか?
この場合、デバッグするときにperlのオプションがたくさんあります。
alias pd='perl -Ilib -I/home/myuser/lib -d'
時には、ルートとしてツールをデバッグする必要があるため、実行する代わりに:
pd ./mytool --some params
sudoで実行する必要があります。私は多くの方法を試しました:
sudo eval $(alias pd)\; pd ./mytool --some params
sudo $(alias pd)\; pd ./mytool --some params
sudo bash -c "$(alias pd)\; pd ./mytool --some params"
sudo bash -c "$(alias pd); pd ./mytool --some params"
sudo bash -c eval\ "$(alias pd)\; pd ./mytool --some params"
sudo bash -c eval\ "'$(alias pd)\; pd ./mytool --some params'"
私の現在のpdエイリアスが(後で調整する必要がある場合に)完全に使用されることを保証する、すてきで簡潔な方法を望んでいましたが、私の試みのいくつかはまったく簡潔ではありませんでした。私の最後の手段は、それをシェルスクリプトに入れ、sudoが見つけられる場所に置くことです。ただし、エイリアスは非常に便利な場合があるため、最後の手段です。
A trailing space in value causes the next word to be checked for alias substitution when the alias is expanded.