Почему wc получает неверный результат при выводе из ps

chown mysql:mysql /var/lib/mysql
chmod 700 /var/lib/mysql
chkconfig --level 345 mysql on
service mysqld start
1
13.04.2017, 15:37
2 ответа

ctrl-d ответ правильный.

Похоже, вы не поняли, что такое команда ps для . В нем перечислены процессы в вашей системе.

Когда вы запускаете команду ps , этот запущенный экземпляр сам является процессом.

Когда вы запускаете команду wc , это тоже процесс.

Если вы вставите несколько команд cat в конвейер, каждая из них также будет процессом, и каждая заставит ps вывести еще одну строку информации:

[vagrant@localhost ~]$ ps | wc -l
4
[vagrant@localhost ~]$ ps | cat | wc -l
5
[vagrant@localhost ~]$ ps | cat | cat | wc -l
6
[vagrant@localhost ~]$ ps | wc -l
4
[vagrant@localhost ~]$ ps
  PID TTY          TIME CMD
22912 pts/0    00:00:00 bash
29651 pts/0    00:00:00 ps
[vagrant@localhost ~]$ 

Факт что эхо "тест" | wc -l отображает "1" не имеет значения.

3
27.01.2020, 23:10

Дополнительная строка - это запущенная программа wc. Он выполняется одновременно с ps, а не после этого.

11
27.01.2020, 23:10

Теги

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