Что происходит, так это то, что вы сейчас пытаетесь запустить функцию внутри строки. Это возможно с дополнительными шагами, но не желательно.
То, что вы хотите сделать, - это объединить строку с выводом функции. Вы можете вставить это следующим образом:
exec('cat /opt/application/userdata/' . escapeshellarg($username) . '/following | grep -w ' . escapeshellarg($name))
(заметил, что я использовал одинарные кавычки ['
], так как внутри строки не происходит расширения, это происходит несколько быстрее и сохраняет его отдельно)
Или вы можете выполнить операцию раньше и просто включить («развернуть») переменные в строку, как показано в первом примере:
$username = escapeshellarg($username);
$name = escapeshellarg($name);
exec("cat /opt/application/userdata/$username/following | grep -w $name")
(заметил, что я использовал двойные кавычки ["
], так как внутри строки происходит расширение)