Program pgrepdan pidofbukan hal yang persis sama, tetapi mereka sangat mirip. Sebagai contoh:
$ pidof 'firefox'
5696
$ pgrep '[i]ref'
5696
$ pidof '[i]ref'
$ printf '%s\n' "$?"
1
Seperti yang Anda lihat, pidofgagal menemukan kecocokan untuk [i]ref. Ini karena pidof programmengembalikan daftar semua ID proses yang terkait dengan program yang disebut program. Di sisi lain, pgrep remengembalikan daftar semua ID proses yang terkait dengan program yang namanya cocok dengan ekspresi reguler re.
Dalam bentuk paling dasar mereka, kesetaraan sebenarnya adalah:
$ pidof 'program'
$ pgrep '^program$'
Sebagai contoh konkret lainnya, pertimbangkan:
$ ps ax | grep '[w]atch'
12 ? S 0:04 [watchdog/0]
15 ? S 0:04 [watchdog/1]
33 ? S< 0:00 [watchdogd]
18451 pts/5 S+ 0:02 watch -n600 tail log-file
$ pgrep watch
12
15
33
18451
$ pidof watch
18451