Situace není komplikovaná. Bash kontroluje pouze první slovo každého příkazu zda neodpovídá nějakému aliasu. Řeší se každý příkaz zvlášť, ať už je na začátku řádku, nebo za středníkem, rourou apod. Pokud Bash najde alias odpovídajícího jména, nahradí toto slovo definovaným řetězcem a opět jeho první slovo hledá nejprve mezi aliasy, ale jen v případě, že to slovo není shodné s tím, které právě nahradil. Jinak si dovedete představit, co by s tím udělala rekurze.
Další informace z manuálu praví, že pokud řetězec, kterým je nahrazen alias, končí mezerou, bude Bash hledat mezi aliasy i slovo následující. Pokud tedy takto alias používat z nějakého důvodu musíte, nebo chcete, můžete si upravit sudo dalším aliasem:
alias sudo="sudo "
Aby vám to fungovalo trvale, musíte si tento alias zapsat do souboru
~/.bashrc
aby se definoval pro každou instanci Bashe daného uživatele.
Viz také:
http://askubuntu.com/questions/22037/aliases-not-available-when-using-sudo
Pokud to náhodou nevíte, i Ubuntu má v základu definováno pár aliasů, které krom barvení výstupu grepu přidávají pár variant použití příkazu ls. Když zadáte do terminálu samostatný příkaz alias, dostanete jejich seznam a obsah.
A když už se zas hrabu v tom Bashi, doporučím jeden svůj zapadlý, ale stále aktuální zápaisek:
Bash - synchronizace historie mezi terminály
Žádné komentáře:
Okomentovat
Zkuste prosím při komentováni používat místo volby Anonymní volbu Název/adresa URL, kde vyplníte nějakou přezdívku, adresu zadávat nemusíte. Vědět, které příspěvky jsou od jednoho člověka, je fajn. Díky.
Pokud by se vám náhodou odeslaný komentář na stránce nezobrazil, vytáhnu ho z koše hned jak si toho všimnu. I Google spam filter se občas sekne.