Używam Fedory 25 i dodałem następujący alias do mojego profilu bash:
alias releasenotes="dnf updateinfo --refresh info `dnf check-update | cut -d '.' -f 1 | xargs` | less"
(Nie mogę korzystać bezpośrednio z dnf updateinfo info
powodu https://bugzilla.redhat.com/show_bug.cgi?id=1405191 )
Mój alias działa, ale uruchomienie polecenia zajmuje około 10 sekund, a ponieważ bash analizuje i sprawdza poprawność wszystkich aliasów podczas pobierania profilu, utworzenie nowej powłoki powoduje 10-sekundowe zawieszenie. To denerwujące.
Czy jest jakiś sposób, aby bash nie próbował parsować i sprawdzać poprawności aliasów - czy tylko tego?
źródło
bash
interpretuje cytowany ciąg, a ta interpretacja wykonuje osadzonednf check-update
polecenie. To wykonanie zajmuje czas podczas definiowania aliasu, a nie głównednf updateinfo
polecenie, które aliasingujesz. Spróbuj skonstruowanego przykładu opartego nasleep
i zwróć uwagę, jakalias
samo to zajmuje 5 sekund:Użyj pojedynczych cudzysłowów, aby uniknąć interpretacji:
Nie zapomnij zamienić
cut
argumentu na podwójne cudzysłowy.źródło