bash: pokaż nazwy zadań w tle w monicie bash


0

Byłoby fajnie, gdyby można było użyć polecenia bash jako mini paska zadań.

Czy w wierszu polecenia bash (PS1) można wyświetlić nazwy zadań wymienionych w poleceniu jobs?


Możesz umieścić wszystko, co chcesz, w PS1tym $(jobs|Filter), gdzie Filtermasuje dane wyjściowe w dowolnym formacie. Aby uzyskać wszystko na jednej linii, użyj echo $($(jobs|Filter)). Można oczywiście dodać wszystkie inne znaki normalnie można wykorzystać w PS1, ale muszą przy przypisywaniu go używać apostrofów, aby upewnić się, że komenda osadzony jest rozwinięty, gdy wydawana jest szybka, a nie wtedy, gdy zmienna jest ustawiona.
AFH

Odpowiedzi:


0

AFH w komentarzu daje ci klocki. Oto jeden przykład, jak poprawić wycenę.

jako „nazwa zadania” wybieram nazwę polecenia zadania (pierwsze słowo po „Uruchomienie”):

PS1='$(echo $(jobs | awk '\''/Running/{print "[" $3 "]"}'\''))$ '

A kiedy wypróbujesz to za pomocą dwóch poleceń w tle i po prostu kilka razy wpisujesz „enter”, aby zobaczyć zmianę monitu:

$ sleep 4 & sleep 2 &
[1] 7222
[2] 7223
[sleep] [sleep]$ 
[sleep] [sleep]$ 
[2]+  Done                    sleep 2
[sleep]$ 
[1]+  Done                    sleep 4
$ 
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.