Что это значит & ldquo; & hellip; | ps `cat` & rdquo; команда сделать?

В своем исследовании Интернета я нашел следующую команду в качестве решения для поиска имени процесса окна:

xprop _NET_WM_PID | sed 's/_NET_WM_PID(CARDINAL) = //' | ps `cat`

Я просто не понимаю, что происходит здесь после первого |. ]

Предположим, что xprop _NET_WM_PID выводит 1000 в качестве идентификатора процесса. Что происходит дальше? Почему у нас есть cat после ps? Я немного смущен.

10
задан 18 April 2013 в 14:40

1 ответ

Сначала выполняется xprop ... | sed ..., затем cat считывает свой вывод. Из-за использования обратных галочек вывод команды cat подставляется в ps `cat` так, что команда становится ps 1000.

Альтернативная команда, которая приводит к тому же результату:

ps $(xprop _NET_WM_PID | cut -d= -f2)

Это работает следующим образом:

  1. Выполнить xprop _NET_WM_PID, чтобы получить идентификатор процесса из окно. После щелчка по окну выводится что-то вроде:

    _NET_WM_PID(CARDINAL) = 12345
    
  2. Разделить на = и занять второе поле. cut -d= -f2 берет строку _NET_WM_PID(CARDINAL) = 12345 из стандартного ввода и записывает 12345 в стандартный вывод.
  3. Наконец, запустите команду ps с заменой $(...) на вывод ..., команда, которая будет выполнена, - ps 12345. (примечание: `...` также может использоваться вместо $(...), хотя есть некоторые различия )
0
ответ дан 18 April 2013 в 14:40

Другие вопросы по тегам:

Похожие вопросы: