wc печатает количество байтов для несуществующего процесса

Я наткнулся на программу wc, которая печатает количество байтов, слов и строк в файлах. Теперь я намерен использовать его, чтобы определить, действительно ли процесс выполняется на моем компьютере. Если это так, он должен вывести количество байтов в запущенном процессе. В противном случае он должен вывести 0. Но я могу использовать фиктивный процесс, и он по-прежнему печатает байты:

$ ps -ef | grep dfdsfdf | wc -c
74

Откуда происходит этот 74?

0
задан 7 March 2014 в 10:52

1 ответ

Хорошо

в первую очередь,

ps -ef 

перечислит каждый процесс в системе

Затем Вы передаете результат по каналу и ищете строку "dfdsfdf"

Вывод будет ничем если команда grep

hadi  28052 27027  0 08:54 pts/0    00:00:00 grep --color=auto dfdsfdf

Теперь Вы передаете этот вывод конвейеру и затем считаете чартеры этого вывода, и таким образом Вы получаете 74.

Для проверки что-то удаляет один символ из строки "dfdsfdf", затем рассчитывают, становятся 73.

см.:

ps -ef | grep dfdsfd | wc -c
73

Благодаря @steeldriver для его комментария.

Могло бы стоить добавить, что grep может быть 'обманут' в не соответствие его собственному выводу путем замены литеральной строки поиска с regex

ps -ef | grep [d]fdsfdf | wc -c

Это возвратится 0

0
ответ дан 7 March 2014 в 10:52

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

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