Portál AbcLinuxu, 25. května 2024 01:47


Dotaz: Zobrazený příkaz aliasu v bashi + vykonání

27.11.2022 15:48 out-freyn
Zobrazený příkaz aliasu v bashi + vykonání
Přečteno: 344×
Odpovědět | Admin
Zdravím vás, mám dotaz, víte někdo jak elegantně udělat, aby po zadání aliasu v bashi se automaticky zobrazil příkaz, který je pod něj přiřazen a následně se samotný příkaz spustil?

např.:

alias mem="free -m"

Chci, aby po zadání "mem" se zobrazilo, že jde o "free -m" a následně se toto provedlo. Standardně se přiřazený příkaz nezobrazuje.

Narazil jsem na řešení typu napsat "type a jméno aliasu", ale když to napíšete pod zkratku aliasu, např:

alias mem="type mem;free -m"

ukáže vám to komplet vše i s příkazem type a pak až se příkaz provede. Chtělo by to přímo nějakým skriptem, který se zavede do bashe, aby aliasy automaticky vykonával a předtím obsah vypisoval, což nevím jak se dělá. Nebo nějaké jiné chytré řešení.

Děkuji za nápady.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

27.11.2022 16:00 X
Rozbalit Rozbalit vše Re: Zobrazený příkaz aliasu v bashi + vykonání
Odpovědět | | Sbalit | Link | Blokovat | Admin
alias mem="echo free -m;free -m"
27.11.2022 16:06 out-freyn
Rozbalit Rozbalit vše Re: Zobrazený příkaz aliasu v bashi + vykonání
ano, děkuji, to určitě funguje, je to další vypisování, ale jde to tak.
k3dAR avatar 29.11.2022 12:34 k3dAR | skóre: 62
Rozbalit Rozbalit vše Re: Zobrazený příkaz aliasu v bashi + vykonání
tak "trochu" prasarna, ale to dalsi vypisovani by slo usnadnit pridanim funkce, kterou bys psal misto toho stejneho prirazeni:
$ cat ~/.bash_aliases

sa(){ alias ${1:-dummy} 2>/dev/null | sed "s/[^;]*//;s/;[ ]*//;s/'$//"; }

alias mem="sa mem;free -m"
pripadne potrebujes to zobrazit vzdy a automaticky pred spustenim aliasu?
pokud by stacilo jen nekdy a ze vyvolas sam, tak po napsani aliasu do terminalu staci zmacknout ctrl+alt+e a alias se "prepise" na jeho prirazeni...
porad nemam telo, ale uz mam hlavu... nobody
k3dAR avatar 29.11.2022 12:41 k3dAR | skóre: 62
Rozbalit Rozbalit vše Re: Zobrazený příkaz aliasu v bashi + vykonání
uniklo mi existence pole BASH_ALIASES, takze o chlup mensi prasarna, bez toho sed:
$ cat ~/.bash_aliases

sa(){ echo ${BASH_ALIASES[${1}]/sa ${1};}; }

alias mem="sa mem;free -m"
porad nemam telo, ale uz mam hlavu... nobody
Jendа avatar 27.11.2022 17:41 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Zobrazený příkaz aliasu v bashi + vykonání
Odpovědět | | Sbalit | Link | Blokovat | Admin
Můžeš si napsat vlastní command_not_found_handle, aliasy definovat třeba jako _xmem (aby „příkaz“ mem neexistoval) a ten handler zjistí jestli existuje „správný“ alias, vypíše ho a spustí.
Já to s tou denacifikací Slovenska myslel vážně.
28.11.2022 23:27 out-freyn
Rozbalit Rozbalit vše Re: Zobrazený příkaz aliasu v bashi + vykonání
Děkuji, to už bude na mě hodně složité, současně.
28.11.2022 23:55 tttttttttt
Rozbalit Rozbalit vše Re: Zobrazený příkaz aliasu v bashi + vykonání
Můžeš zkusit fish, tam to je out of the box (abbreviations). Nebo zsh, na googlu se dá najít implementace, ale nezkoušel jsem ji.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.