С точки зрения регулярного выражения они одинаковы.
При использовании скобок вывод ps
для строки grep
будет иметь следующий вид:
ps -ef | grep [c]ron
Этот текст будет передан в стандарт grep
в, grep
пытается найти текст cron
, которого нет в этой строке, поэтому строка не соответствует.
Без скобок строка содержит текст cron
, поэтому он совпадает.
В случае grep '[c] ron' вывод ps будет содержать литерал '[' ' c ''] '' r '' o '' n ' И, следовательно, grep' [c] ron 'не сможет соответствовать команде grep, пока будет соответствовать запущенному процессу задания cron.
В то время как в случае grep 'cron' вывод ps содержит литерал 'c' 'r' 'o' 'n' и, следовательно, grep 'cron' будет соответствовать самому себе, процесс grep, а также в любом случае соответствуют процессу задания cron.