Рейтинг:-2

Как написать сценарий оболочки для печати PID, владельца и имени процесса, используя специальную переменную $$ в качестве параметра для сценария

флаг my

Скрипт должен представить команду pstree -hsup $$. Я пробовал много разных способов, но я не мог найти способ распечатать вывод, подобный этому

28348 (баш, корень)
28347 (вс, корень)
28346 (судо, корень)
14085 (баш, пользователь)
14083 (лктерминал, пользователь)
    1 (системный, корень)
флаг tm
Что-то вроде pstree -hsupA $$ | тр -д '\n' | sed 's/-[+-]-\| *[`|]-/\n/g'``? Как должен быть отсортирован вывод?
Flowless Man avatar
флаг my
он должен быть отсортирован от самого нового процесса к самому старому, включая имя владельца, и в сценарии оболочки я не могу использовать команду pstree, я просто хочу распечатать процесс из текущей оболочки, например (./shell.sh $ $) он должен печатать процессы и PID и владельца таким образом PID (ИМЯ, ВЛАДЕЛЕЦ)
Рейтинг:2
флаг tm

ps -o ppid выведет pid родительского процесса. Итак, начните с текущего pid и запросите родителя, затем его родителя и так далее.

#! /бин/баш
код=$1
в то время как ((пид) ; делать
    ps -h -o 'pid,comm,euser' $pid \
        | sed -E 's/^( *[0-9]+ )([^ ]+) *([^ ]+)/\1(\2,\3)/'
    pid=$(ps -h -o ppid $pid)
сделано

Вы хотите вывести pid, команду и эффективного пользователя (или, может быть, реального пользователя?). Укажите их в и использовать сед переформатировать вывод. Здесь мы захватываем три не пробельные строки и вставляем круглые скобки и запятую там, где это необходимо.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.