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?
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?
Odpowiedzi:
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
$
PS1
tym$(jobs|Filter)
, gdzieFilter
masuje dane wyjściowe w dowolnym formacie. Aby uzyskać wszystko na jednej linii, użyjecho $($(jobs|Filter))
. Można oczywiście dodać wszystkie inne znaki normalnie można wykorzystać wPS1
, 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.