У мене є псевдонім, який передає в деяких параметрах інструмент, яким я часто користуюся. Іноді я біжу як сама, іноді під судо. На жаль, звичайно, судо не визнає псевдоніму.
Хтось має підказку, як пройти псевдонім через?
У цьому випадку у мене є купа варіантів для perl під час налагодження:
alias pd='perl -Ilib -I/home/myuser/lib -d'
Іноді мені доводиться налагоджувати свої інструменти як root, тому замість запуску:
pd ./mytool --some params
Мені потрібно запустити це під судо. Я перепробував багато способів:
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 (на випадок, якщо мені доведеться його переробити пізніше), хоча деякі мої спроби зовсім не були стислими. Моя остання можливість - це вкласти його в сценарій оболонки і помістити, що десь це судо зможе знайти. Але іноді псевдоніми дуже зручні, тому це в крайньому випадку.
A trailing space in value causes the next word to be checked for alias substitution when the alias is expanded.