protected function compileParameters(array $parameters): string
    {
        $keys = \array_keys($parameters);

        $items = \array_map(static function ($value, $key) {
            if (\is_array($value)) {
                $value = \array_map('escapeshellarg', $value);

                $value = \implode(' ', $value);
            } elseif (! \is_numeric($value) && ! \preg_match('/^(-.$|--.*)/', $value)) {
                $value = \escapeshellarg($value);
            }

            return \is_numeric($key) ? $value : \sprintf('%s=%s', $key, $value);
        }, $parameters, $keys);

        return \implode(' ', \array_combine($keys, $items));
    }